diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 548dcf37..00000000 --- a/.babelrc +++ /dev/null @@ -1,25 +0,0 @@ -{ - "presets": [ - "@babel/react", - "@babel/preset-flow", - [ - "@babel/env", - { - "forceAllTransforms": true - } - ], - ["@babel/preset-stage-0", { "decoratorsLegacy": true }] - ], - "plugins": [ - "@babel/plugin-syntax-dynamic-import", - "transform-es3-member-expression-literals", - "transform-es3-property-literals" - ], - "env": { - "test": { - "plugins": [ - "dynamic-import-node" - ] - } - } -} diff --git a/.eslintrc b/.eslintrc index c45adf39..b565138c 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,8 +1,5 @@ { - "extends": [ - "airbnb", - "plugin:flowtype/recommended" - ], + "extends": ["airbnb", "plugin:flowtype/recommended"], "parser": "babel-eslint", "plugins": ["jest", "flowtype"], "rules": { @@ -27,19 +24,23 @@ "import/extensions": 0, "import/prefer-default-export": 0, "jsx-a11y/label-has-for": 0, - "indent": ["error", 2], + "indent": ["error", 2, { "SwitchCase": 1 }], "no-console": ["error", { "allow": ["warn", "error"] }], "flowtype/require-valid-file-annotation": [ 2, - "always", { + "always", + { "annotationStyle": "line" } ], - "jsx-a11y/anchor-is-valid": [ "error", { - "components": [ "Link" ], - "specialLink": [ "to", "hrefLeft", "hrefRight" ], - "aspects": [ "noHref", "invalidHref", "preferButton" ] - }], + "jsx-a11y/anchor-is-valid": [ + "error", + { + "components": ["Link"], + "specialLink": ["to", "hrefLeft", "hrefRight"], + "aspects": ["noHref", "invalidHref", "preferButton"] + } + ], "react/require-default-props": 0, "react/no-array-index-key": 0 }, diff --git a/.gitignore b/.gitignore index 17a75e7b..a75dc3eb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ node_modules/ build_webpack/ build_storybook/ -.DS_Store \ No newline at end of file +.DS_Store +build/ +yarn-error.log \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index ab7ab712..f6c5638d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,11 @@ if: (branch = development) OR (branch = master) OR (type = pull_request) OR (tag IS present) sudo: required +dist: xenial services: - docker language: node_js node_js: - - "9" + - "10" os: - linux env: @@ -23,6 +24,8 @@ before_install: # Needed to deploy pull request and releases - sudo apt-get -y install python-pip python-dev - pip install awscli --upgrade --user + # Install truffle + - yarn global add truffle before_script: # Used in the tests of the project - export NODE_ENV=testing diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 00000000..a5da135e --- /dev/null +++ b/babel.config.js @@ -0,0 +1,49 @@ +// @flow +module.exports = { + presets: [ + '@babel/react', + '@babel/preset-flow', + [ + '@babel/env', + { + forceAllTransforms: true, + }, + ], + ], + plugins: [ + 'react-hot-loader/babel', + '@babel/plugin-syntax-dynamic-import', + '@babel/plugin-transform-member-expression-literals', + '@babel/plugin-transform-property-literals', + '@babel/plugin-syntax-import-meta', + '@babel/plugin-proposal-class-properties', + '@babel/plugin-proposal-json-strings', + [ + '@babel/plugin-proposal-decorators', + { + legacy: true, + }, + ], + '@babel/plugin-proposal-function-sent', + '@babel/plugin-proposal-export-namespace-from', + '@babel/plugin-proposal-numeric-separator', + '@babel/plugin-proposal-throw-expressions', + '@babel/plugin-proposal-export-default-from', + '@babel/plugin-proposal-logical-assignment-operators', + '@babel/plugin-proposal-optional-chaining', + [ + '@babel/plugin-proposal-pipeline-operator', + { + proposal: 'minimal', + }, + ], + '@babel/plugin-proposal-nullish-coalescing-operator', + '@babel/plugin-proposal-do-expressions', + '@babel/plugin-proposal-function-bind', + ], + env: { + test: { + plugins: ['dynamic-import-node'], + }, + }, +} diff --git a/config/jest/cssTransform.js b/config/jest/cssTransform.js index aa17d127..05ec203f 100644 --- a/config/jest/cssTransform.js +++ b/config/jest/cssTransform.js @@ -1,12 +1,13 @@ +// @flow // This is a custom Jest transformer turning style imports into empty objects. // http://facebook.github.io/jest/docs/tutorial-webpack.html module.exports = { process() { - return 'module.exports = {};'; + return 'module.exports = {};' }, getCacheKey(fileData, filename) { // The output is always the same. - return 'cssTransform'; + return 'cssTransform' }, -}; +} diff --git a/config/jest/fileTransform.js b/config/jest/fileTransform.js index 927eb305..06760aa5 100644 --- a/config/jest/fileTransform.js +++ b/config/jest/fileTransform.js @@ -1,10 +1,11 @@ -const path = require('path'); +// @flow +const path = require('path') // This is a custom Jest transformer turning file imports into filenames. // http://facebook.github.io/jest/docs/tutorial-webpack.html module.exports = { process(src, filename) { - return 'module.exports = ' + JSON.stringify(path.basename(filename)) + ';'; + return `module.exports = ${JSON.stringify(path.basename(filename))};` }, -}; +} diff --git a/config/polyfills.js b/config/polyfills.js index 7e601502..4da409ab 100644 --- a/config/polyfills.js +++ b/config/polyfills.js @@ -1,14 +1,15 @@ +// @flow if (typeof Promise === 'undefined') { // Rejection tracking prevents a common issue where React gets into an // inconsistent state due to an error, but it gets swallowed by a Promise, // and the user has no idea what causes React's erratic future behavior. - require('promise/lib/rejection-tracking').enable(); - window.Promise = require('promise/lib/es6-extensions.js'); + require('promise/lib/rejection-tracking').enable() + window.Promise = require('promise/lib/es6-extensions.js') } // fetch() polyfill for making API calls. -require('whatwg-fetch'); +require('whatwg-fetch') // Object.assign() is commonly used with React. // It will use the native implementation if it's present and isn't buggy. -Object.assign = require('object-assign'); +Object.assign = require('object-assign') diff --git a/config/webpack.config.dev.js b/config/webpack.config.dev.js index 101c7bb0..496cb7ea 100644 --- a/config/webpack.config.dev.js +++ b/config/webpack.config.dev.js @@ -1,47 +1,47 @@ /*eslint-disable*/ -const autoprefixer = require('autoprefixer'); -const cssmixins = require('postcss-mixins'); -const cssvars = require('postcss-simple-vars'); -const webpack = require('webpack'); -const HtmlWebPackPlugin = require("html-webpack-plugin"); +const autoprefixer = require('autoprefixer') +const cssmixins = require('postcss-mixins') +const cssvars = require('postcss-simple-vars') +const webpack = require('webpack') +const HtmlWebPackPlugin = require('html-webpack-plugin') -const paths = require('./paths'); -const getClientEnvironment = require('./env'); +const paths = require('./paths') +const getClientEnvironment = require('./env') -const publicPath = '/'; +const publicPath = '/' // `publicUrl` we will provide it to our app // as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript. // Omit trailing slash as %PUBLIC_PATH%/xyz looks better than %PUBLIC_PATH%xyz. -var publicUrl = ''; +var publicUrl = '' // Get environment variables to inject into our app. -var env = getClientEnvironment(publicUrl); +var env = getClientEnvironment(publicUrl) -const cssvariables = require(paths.appSrc + '/theme/variables'); +const cssvariables = require(paths.appSrc + '/theme/variables') const postcssPlugins = [ autoprefixer({ - browsers: [ + overrideBrowserslist: [ '>1%', 'last 4 versions', 'Firefox ESR', 'not ie < 9', // React doesn't support IE8 anyway - ] + ], }), cssmixins, cssvars({ - variables: function () { - return Object.assign({}, cssvariables); + variables: function() { + return Object.assign({}, cssvariables) }, - silent: false + silent: false, }), -]; +] module.exports = { devtool: 'eval-source-map', mode: 'development', entry: [ - "babel-polyfill", + 'babel-polyfill', // Include an alternative client for WebpackDevServer. A client's job is to // connect to WebpackDevServer by a socket and get notified about changes. // When you save a file, the client will either apply hot updates (in case @@ -56,17 +56,13 @@ module.exports = { // We ship a few polyfills by default: require.resolve('./polyfills'), // Finally, this is your app's code: - paths.appIndexJs + paths.appIndexJs, // We include the app code last so that if there is a runtime error during // initialization, it doesn't blow up the WebpackDevServer client, and // changing JS code would still trigger a refresh. ], resolve: { - modules: [ - paths.appSrc, - 'node_modules', - paths.appContracts, - ], + modules: [paths.appSrc, 'node_modules', paths.appContracts], // These are the reasonable defaults supported by the Node ecosystem. // We also include JSX as a common component filename extension to support // some tools, although we do not recommend using it, see: @@ -75,7 +71,7 @@ module.exports = { alias: { '~': paths.appSrc, '#': paths.appContracts, - } + }, }, output: { // Next line is not used in dev but WebpackDevServer crashes without it: @@ -87,28 +83,29 @@ module.exports = { // containing code from all our entry points, and the Webpack runtime. filename: 'static/js/bundle.js', // This is the URL that app is served from. We use "/" in development. - publicPath: publicPath - }, + publicPath: publicPath, + }, module: { rules: [ { test: /\.(js|jsx)$/, exclude: /node_modules/, use: { - loader: "babel-loader" - } + loader: 'babel-loader', + }, }, { test: /\.(scss|css)$/, use: [ 'style-loader', - { loader: 'css-loader', + { + loader: 'css-loader', options: { importLoaders: 1, - modules: true, - minimize: false, - localIdentName: '[name]__[local]___[hash:base64:5]', - } + modules: { + localIdentName: '[name]__[local]___[hash:base64:5]', + }, + }, }, { loader: 'postcss-loader', @@ -123,22 +120,24 @@ module.exports = { test: /\.html$/, use: [ { - loader: "html-loader", - options: { minimize: false } - } - ] + loader: 'html-loader', + options: { minimize: false }, + }, + ], }, { test: /\.(jpe?g|png|svg)$/i, exclude: /node_modules/, - use: [{ - loader: "file-loader", - options: { - name: 'img/[hash].[ext]' - } - }] + use: [ + { + loader: 'file-loader', + options: { + name: 'img/[hash].[ext]', + }, + }, + ], }, - ] + ], }, plugins: [ new HtmlWebPackPlugin({ @@ -152,6 +151,6 @@ module.exports = { node: { fs: 'empty', net: 'empty', - tls: 'empty' - } -}; + tls: 'empty', + }, +} diff --git a/config/webpack.config.prod.js b/config/webpack.config.prod.js index dce1c591..37395a41 100644 --- a/config/webpack.config.prod.js +++ b/config/webpack.config.prod.js @@ -1,7 +1,7 @@ /*eslint-disable*/ const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin const autoprefixer = require('autoprefixer') -const cssmixins = require('postcss-mixins'); +const cssmixins = require('postcss-mixins') const cssvars = require('postcss-simple-vars') const webpack = require('webpack') @@ -9,8 +9,10 @@ const UglifyJSPlugin = require('uglifyjs-webpack-plugin') const HtmlWebpackPlugin = require('html-webpack-plugin') const ExtractTextPlugin = require('extract-text-webpack-plugin') const ManifestPlugin = require('webpack-manifest-plugin') -const url = require('url') +const MiniCssExtractPlugin = require('mini-css-extract-plugin') +const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin') +const url = require('url') const paths = require('./paths') const getClientEnvironment = require('./env') @@ -18,7 +20,7 @@ const cssvariables = require(`${paths.appSrc}/theme/variables`) const postcssPlugins = [ autoprefixer({ - browsers: [ + overrideBrowserslist: [ '>1%', 'last 4 versions', 'Firefox ESR', @@ -77,7 +79,7 @@ module.exports = { bail: true, optimization: { splitChunks: { - chunks: "all", + chunks: 'all', /* https://stackoverflow.com/questions/48985780/webpack-4-create-vendor-chunk cacheGroups: { vendor: { @@ -90,11 +92,9 @@ module.exports = { }, */ }, + minimizer: [new OptimizeCSSAssetsPlugin({})], }, - entry: [ - require.resolve('./polyfills'), - paths.appIndexJs, - ], + entry: [require.resolve('./polyfills'), paths.appIndexJs], output: { // The build folder. path: paths.appBuild, @@ -107,11 +107,7 @@ module.exports = { publicPath, }, resolve: { - modules: [ - paths.appSrc, - 'node_modules', - paths.appContracts, - ], + modules: [paths.appSrc, 'node_modules', paths.appContracts], // These are the reasonable defaults supported by the Node ecosystem. // We also include JSX as a common component filename extension to support // some tools, although we do not recommend using it, see: @@ -134,36 +130,35 @@ module.exports = { }, { test: /\.(scss|css)$/, - use: ExtractTextPlugin.extract({ - fallback: 'style-loader', - use: [ - { - loader: 'css-loader', - options: { - importLoaders: 1, - modules: true, - minimize: true, - }, + use: [ + MiniCssExtractPlugin.loader, + { + loader: 'css-loader', + options: { + importLoaders: 1, + modules: true, }, - { - loader: 'postcss-loader', - options: { - sourceMap: true, - plugins: postcssPlugins, - }, + }, + { + loader: 'postcss-loader', + options: { + sourceMap: true, + plugins: postcssPlugins, }, - ], - }), + }, + ], }, { test: /\.(jpe?g|png|svg)$/i, exclude: /node_modules/, - use: [{ - loader: "file-loader", - options: { - name: 'img/[hash].[ext]' - } - }] + use: [ + { + loader: 'file-loader', + options: { + name: 'img/[hash].[ext]', + }, + }, + ], }, ], }, @@ -190,10 +185,9 @@ module.exports = { // It is absolutely essential that NODE_ENV was set to production here. // Otherwise React will be compiled in the very slow development mode. new webpack.DefinePlugin(env), - // Note: this won't work without ExtractTextPlugin.extract(..) in `loaders`. - new ExtractTextPlugin({ + new MiniCssExtractPlugin({ filename: 'static/css/[name].[hash:8].css', - allChunks: true + allChunks: 'static/css/[id].[hash:8].css', }), // Generate a manifest file which contains a mapping of all asset filenames // to their corresponding output file so that tools can pick it up without diff --git a/contracts/DevDependencies.sol b/contracts/DevDependencies.sol new file mode 100644 index 00000000..e94e2c7c --- /dev/null +++ b/contracts/DevDependencies.sol @@ -0,0 +1,6 @@ +pragma solidity ^0.5.2; + +import "../src/test/contracts/TokenOMG.sol"; +import "../src/test/contracts/TokenRDN.sol"; + +contract DevDependenciesGetter {} \ No newline at end of file diff --git a/contracts/Migrations.sol b/contracts/Migrations.sol new file mode 100644 index 00000000..6816aa35 --- /dev/null +++ b/contracts/Migrations.sol @@ -0,0 +1,23 @@ +pragma solidity ^0.5.2; + +contract Migrations { + address public owner; + uint public last_completed_migration; + + modifier restricted() { + if (msg.sender == owner) _; + } + + constructor () public { + owner = msg.sender; + } + + function setCompleted(uint completed) public restricted { + last_completed_migration = completed; + } + + function upgrade(address new_address) public restricted { + Migrations upgraded = Migrations(new_address); + upgraded.setCompleted(last_completed_migration); + } +} \ No newline at end of file diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 00000000..67143258 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,28 @@ +// @flow +const esModules = ['immortal-db'].join('|') + +module.exports = { + collectCoverageFrom: ['src/**/*.{js,jsx}'], + moduleNameMapper: { + '~(.*)$': '/src/$1', + '#(.*)$': '/safe-contracts/build/contracts/$1', + '^react-native$': 'react-native-web', + }, + setupFiles: [ + '/config/webpack.config.test.js', + '/config/polyfills.js', + '/config/jest/LocalStorageMock.js', + '/config/jest/Web3Mock.js', + ], + setupFilesAfterEnv: ['/config/jest/jest.setup.js', '@testing-library/react/cleanup-after-each'], + testEnvironment: 'node', + testMatch: ['/src/**/__tests__/**/*.js?(x)', '/src/**/?(*.)(spec|test).js?(x)'], + testURL: 'http://localhost:8000', + transform: { + '^.+\\.(js|jsx)$': '/node_modules/babel-jest', + '^.+\\.(css|scss)$': '/config/jest/cssTransform.js', + '^(?!.*\\.(js|jsx|css|json)$)': '/config/jest/fileTransform.js', + }, + transformIgnorePatterns: [`/node_modules/(?!${esModules})`], + verbose: true, +} diff --git a/migrations/1_initial_migration.js b/migrations/1_initial_migration.js new file mode 100644 index 00000000..19434bb4 --- /dev/null +++ b/migrations/1_initial_migration.js @@ -0,0 +1,4 @@ +// @flow +const Migrations = artifacts.require('./Migrations.sol') + +module.exports = deployer => deployer.deploy(Migrations) diff --git a/migrations/2_DEV_deploy_token.js b/migrations/2_DEV_deploy_token.js new file mode 100644 index 00000000..d92ff42d --- /dev/null +++ b/migrations/2_DEV_deploy_token.js @@ -0,0 +1,21 @@ +// @flow +/* eslint-disable no-console */ +const TokenOMG = artifacts.require('TokenOMG') +const TokenRDN = artifacts.require('TokenRDN') + +module.exports = (deployer, network) => { + let toBN + if (typeof web3.version === 'string') { + // 1.X.xx Web3 + ({ toBN } = web3.utils) + } else { + toBN = web3.toBigNumber + } + if (network === 'development') { + return deployer + .deploy(TokenOMG, toBN(50000).mul(toBN(10).pow(toBN(18)))) + .then(() => deployer.deploy(TokenRDN, toBN(50000).mul(toBN(10).pow(toBN(18))))) + } + + return console.log('Not running on development, skipping.') +} diff --git a/package.json b/package.json index b5e02792..234093ca 100644 --- a/package.json +++ b/package.json @@ -2,147 +2,142 @@ "name": "safe-react", "version": "0.3.2", "description": "Allowing crypto users manage funds in a safer way", - "directories": { - "test": "test" - }, - "scripts": { - "start": "node scripts/start.js", - "build": "node scripts/build.js", - "test": "NODE_ENV=test && node scripts/test.js --env=jsdom", - "test-local": "NODE_ENV=test && node scripts/test.js --env=jsdom", - "precommit": "./precommit.sh", - "flow": "flow", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook -o build_storybook" + "homepage": "https://github.com/gnosis/safe-react#readme", + "bugs": { + "url": "https://github.com/gnosis/safe-react/issues" }, "repository": { "type": "git", "url": "https://github.com/gnosis/safe-react" }, - "author": "Gnosis Team", "license": "MIT", - "bugs": { - "url": "https://github.com/gnosis/safe-react/issues" + "author": "Gnosis Team", + "directories": { + "test": "test" + }, + "scripts": { + "build": "node scripts/build.js", + "build-storybook": "build-storybook -o build_storybook", + "flow": "flow", + "precommit": "./precommit.sh", + "start": "node scripts/start.js", + "storybook": "start-storybook -p 6006", + "test": "NODE_ENV=test && node scripts/test.js --env=jsdom", + "format": "prettier-eslint \"src/**/*.js\" --write" }, - "homepage": "https://github.com/gnosis/safe-react#readme", "pre-commit": [ "precommit" ], - "devDependencies": { - "@babel/cli": "^7.0.0-beta.40", - "@babel/core": "^7.0.0-beta.40", - "@babel/plugin-syntax-dynamic-import": "^7.0.0-beta.40", - "@babel/polyfill": "^7.0.0-beta.40", - "@babel/preset-env": "^7.0.0-beta.40", - "@babel/preset-flow": "^7.0.0-beta.40", - "@babel/preset-react": "^7.0.0-beta.40", - "@babel/preset-stage-0": "^7.0.0-beta.40", - "@sambego/storybook-state": "^1.0.7", - "@storybook/addon-actions": "^3.3.15", - "@storybook/addon-knobs": "^3.3.15", - "@storybook/addon-links": "^3.3.15", - "@storybook/react": "^3.3.15", - "autoprefixer": "^8.1.0", - "babel-core": "^7.0.0-bridge.0", - "babel-eslint": "8", - "babel-jest": "^22.4.1", - "babel-loader": "^8.0.0-beta.0", - "babel-plugin-dynamic-import-node": "^1.2.0", - "babel-plugin-transform-es3-member-expression-literals": "^6.22.0", - "babel-plugin-transform-es3-property-literals": "^6.22.0", - "bignumber.js": "^7.2.1", - "classnames": "^2.2.5", - "css-loader": "^0.28.10", - "detect-port": "^1.2.2", - "dotenv": "^5.0.1", - "eslint": "^4.18.2", - "eslint-config-airbnb": "^16.1.0", - "eslint-plugin-flowtype": "^2.46.1", - "eslint-plugin-import": "^2.9.0", - "eslint-plugin-jest": "^21.13.0", - "eslint-plugin-jsx-a11y": "^6.0.3", - "eslint-plugin-react": "^7.7.0", - "ethereumjs-abi": "^0.6.5", - "extract-text-webpack-plugin": "^4.0.0-beta.0", - "file-loader": "^1.1.11", - "flow-bin": "^0.79.1", - "fs-extra": "^5.0.0", - "html-loader": "^0.5.5", - "html-webpack-plugin": "^3.0.4", + "dependencies": { + "@gnosis.pm/safe-contracts": "^1.0.0", + "@gnosis.pm/util-contracts": "2.0.1", + "@material-ui/core": "4.2.0", + "@material-ui/icons": "4.2.1", + "@testing-library/jest-dom": "^4.0.0", + "@welldone-software/why-did-you-render": "3.2.1", + "axios": "0.19.0", + "bignumber.js": "9.0.0", + "connected-react-router": "6.5.2", + "date-fns": "1.30.1", + "final-form": "4.18.2", + "history": "^4.7.2", + "immortal-db": "^1.0.2", "immutable": "^4.0.0-rc.9", - "jest": "^22.4.2", - "json-loader": "^0.5.7", "material-ui-search-bar": "^1.0.0-beta.13", - "postcss-loader": "^2.1.1", - "postcss-mixins": "^6.2.0", - "postcss-simple-vars": "^4.1.0", - "pre-commit": "^1.2.2", - "react": "^16.4.0", - "react-dev-utils": "^5.0.1", - "react-dom": "^16.4.0", - "react-redux": "^5.0.7", - "react-router-redux": "^5.0.0-alpha.9", - "redux": "^3.7.2", + "optimize-css-assets-webpack-plugin": "5.0.3", + "qrcode.react": "^0.9.3", + "react": "^16.8.6", + "react-dom": "^16.8.6", + "react-final-form": "6.3.0", + "react-final-form-listeners": "^1.0.2", + "react-hot-loader": "4.12.7", + "react-infinite-scroll-component": "^4.5.2", + "react-redux": "7.1.0", + "react-router-dom": "^5.0.1", + "recompose": "^0.30.0", + "redux": "4.0.4", "redux-actions": "^2.3.0", "redux-thunk": "^2.2.0", - "reselect": "^3.0.1", - "run-with-testrpc": "^0.3.0", - "storybook-host": "^4.1.5", + "reselect": "^4.0.0", + "web3": "1.0.0-beta.37" + }, + "devDependencies": { + "@babel/cli": "7.5.0", + "@babel/core": "7.5.4", + "@babel/plugin-proposal-class-properties": "7.5.0", + "@babel/plugin-proposal-decorators": "7.4.4", + "@babel/plugin-proposal-do-expressions": "7.5.0", + "@babel/plugin-proposal-export-default-from": "7.5.2", + "@babel/plugin-proposal-export-namespace-from": "7.5.2", + "@babel/plugin-proposal-function-bind": "^7.0.0", + "@babel/plugin-proposal-function-sent": "7.5.0", + "@babel/plugin-proposal-json-strings": "^7.0.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "7.4.4", + "@babel/plugin-proposal-numeric-separator": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-proposal-pipeline-operator": "7.5.0", + "@babel/plugin-proposal-throw-expressions": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-import-meta": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.2.0", + "@babel/plugin-transform-property-literals": "^7.2.0", + "@babel/polyfill": "7.4.4", + "@babel/preset-env": "7.5.4", + "@babel/preset-flow": "^7.0.0-beta.40", + "@babel/preset-react": "^7.0.0-beta.40", + "@sambego/storybook-state": "^1.0.7", + "@storybook/addon-actions": "5.1.9", + "@storybook/addon-knobs": "5.1.9", + "@storybook/addon-links": "5.1.9", + "@storybook/react": "5.1.9", + "@testing-library/react": "8.0.5", + "autoprefixer": "9.6.1", + "babel-core": "^7.0.0-bridge.0", + "babel-eslint": "10.0.2", + "babel-jest": "24.8.0", + "babel-loader": "8.0.6", + "babel-plugin-dynamic-import-node": "^2.2.0", + "babel-plugin-transform-es3-member-expression-literals": "^6.22.0", + "babel-plugin-transform-es3-property-literals": "^6.22.0", + "classnames": "^2.2.5", + "css-loader": "3.0.0", + "detect-port": "^1.2.2", + "eslint": "5.16.0", + "eslint-config-airbnb": "17.1.1", + "eslint-plugin-flowtype": "3.11.1", + "eslint-plugin-import": "2.18.0", + "eslint-plugin-jest": "22.9.0", + "eslint-plugin-jsx-a11y": "6.2.3", + "eslint-plugin-react": "7.14.2", + "ethereumjs-abi": "^0.6.7", + "extract-text-webpack-plugin": "^4.0.0-beta.0", + "file-loader": "4.0.0", + "flow-bin": "0.102.0", + "fs-extra": "8.1.0", + "html-loader": "^0.5.5", + "html-webpack-plugin": "^3.0.4", + "jest": "24.8.0", + "jest-dom": "4.0.0", + "json-loader": "^0.5.7", + "mini-css-extract-plugin": "0.8.0", + "postcss-loader": "^3.0.0", + "postcss-mixins": "^6.2.0", + "postcss-simple-vars": "^5.0.2", + "pre-commit": "^1.2.2", + "prettier-eslint-cli": "5.0.0", + "run-with-testrpc": "0.3.1", + "storybook-host": "5.1.0", "storybook-router": "^0.3.3", - "style-loader": "^0.20.2", - "truffle": "^4.1.11", - "truffle-contract": "^1.1.8", - "truffle-solidity-loader": "0.0.8", - "uglifyjs-webpack-plugin": "^1.2.2", - "web3": "0.18.4", - "webpack": "^4.1.1", - "webpack-bundle-analyzer": "^2.11.1", - "webpack-cli": "^2.0.8", - "webpack-dev-server": "^3.1.0", + "style-loader": "^0.23.1", + "truffle": "5.0.27", + "truffle-contract": "4.0.24", + "truffle-solidity-loader": "0.1.26", + "uglifyjs-webpack-plugin": "2.1.3", + "webpack": "4.35.3", + "webpack-bundle-analyzer": "3.3.2", + "webpack-cli": "3.3.6", + "webpack-dev-server": "3.7.2", "webpack-manifest-plugin": "^2.0.0-rc.2" - }, - "dependencies": { - "@gnosis.pm/util-contracts": "^0.2.14", - "@material-ui/core": "^3.0.1", - "@material-ui/icons": "^3.0.1", - "final-form": "^4.2.1", - "history": "^4.7.2", - "react-final-form": "^3.1.2", - "react-loadable": "^5.3.1", - "react-router-dom": "^4.2.2", - "recompose": "^0.27.1" - }, - "jest": { - "verbose": true, - "collectCoverageFrom": [ - "src/**/*.{js,jsx}" - ], - "setupTestFrameworkScriptFile": "/config/jest/jest.setup.js", - "setupFiles": [ - "/config/webpack.config.test.js", - "/config/polyfills.js", - "/config/jest/LocalStorageMock.js", - "/config/jest/Web3Mock.js" - ], - "testMatch": [ - "/src/**/__tests__/**/*.js?(x)", - "/src/**/?(*.)(spec|test).js?(x)" - ], - "testEnvironment": "node", - "testURL": "http://localhost:8000", - "transform": { - "^.+\\.(js|jsx)$": "/node_modules/babel-jest", - "^.+\\.(css|scss)$": "/config/jest/cssTransform.js", - "^(?!.*\\.(js|jsx|css|json)$)": "/config/jest/fileTransform.js" - }, - "transformIgnorePatterns": [ - "[/\\\\]node_modules[/\\\\].+\\.(js|jsx)$", - "[/\\\\]flow-typed[/\\\\].+\\.(js|jsx)$" - ], - "moduleNameMapper": { - "~(.*)$": "/src/$1", - "#(.*)$": "/safe-contracts/build/contracts/$1", - "^react-native$": "react-native-web" - } } } diff --git a/readme.md b/readme.md index 2101aecc..bb883ae2 100644 --- a/readme.md +++ b/readme.md @@ -11,12 +11,13 @@ These instructions will get you a copy of the project up and running on your loc What things you need to install the software and how to install them ``` -npm install truffle // recommended usage of -g flag -npm install ganache-cli // recommended usage of -g flag -npm install flow-type // recommended usage of -g flag -git clone https://github.com/gnosis/safe-contracts.git +yarn add truffle // recommended usage of -g flag +yarn add ganache-cli // recommended usage of -g flag +yarn add flow-type // recommended usage of -g flag ``` +We use [yarn](https://yarnpkg.com) in our infrastacture, so we decided to go with yarn in the README + ### Installing A step by step series of examples that tell you have to get a development env running @@ -28,15 +29,37 @@ ganache-cli -b 3 Start the project in the other one ``` -cd safe-contracts && truffle compile && truffle migrate && cd .. -npm install -npm start +yarn install +yarn start ``` ## Running the tests +1. Run `transaction-history-service` ``` -npm test +git clone https://github.com/gnosis/safe-transaction-service.git +cd safe-transaction-history +git checkout develop +docker-compose build +docker-compose up -d +``` +Check that the service is running at https://localhost:8000 + +2. Migrate Safe Contracts: +``` +git clone https://github.com/gnosis/safe-contracts.git +cd safe-contracts +yarn +npx truffle migrate +``` +3. Migrate Token Contracts for the tests: +Inside `safe-react` directory +``` +npx truffle migrate +``` +4. Run the tests: +``` +yarn test ``` diff --git a/safe-contracts/build/contracts/BaseSafe.json b/safe-contracts/build/contracts/BaseSafe.json deleted file mode 100644 index 6b8c20d3..00000000 --- a/safe-contracts/build/contracts/BaseSafe.json +++ /dev/null @@ -1,1149 +0,0 @@ -{ - "contractName": "BaseSafe", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModule", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_MODULES", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_OWNERS", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getModules", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevModule", - "type": "address" - }, - { - "name": "module", - "type": "address" - } - ], - "name": "disableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "oldOwner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" - } - ], - "name": "swapOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getThreshold", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - } - ], - "name": "AddedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - } - ], - "name": "RemovedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "threshold", - "type": "uint256" - } - ], - "name": "ChangedThreshold", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "module", - "type": "address" - } - ], - "name": "EnabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "module", - "type": "address" - } - ], - "name": "DisabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "newContract", - "type": "address" - } - ], - "name": "ContractCreation", - "type": "event" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506128c9806100206000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100c75780632f54bf6e14610114578063468721a71461016f578063610b592514610227578063694e80c31461026a57806385e332cd146102975780638cff6355146102ee578063a0e67e2b14610345578063b2494df3146103b1578063e009cfde1461041d578063e318b52b14610480578063e75235b814610503578063f8dc5dd91461052e575b005b3480156100d357600080fd5b50610112600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b005b34801561012057600080fd5b50610155600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a04565b604051808215151515815260200191505060405180910390f35b34801561017b57600080fd5b5061020d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561023357600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb1565b005b34801561027657600080fd5b5061029560048036038101908080359060200190929190505050610fee565b005b3480156102a357600080fd5b506102ac611239565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102fa57600080fd5b5061030361123e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035157600080fd5b5061035a611243565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561039d578082015181840152602081019050610382565b505050509050019250505060405180910390f35b3480156103bd57600080fd5b506103c66113de565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104095780820151818401526020810190506103ee565b505050509050019250505060405180910390f35b34801561042957600080fd5b5061047e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611681565b005b34801561048c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af9565b005b34801561050f57600080fd5b5061051861220c565b6040518082815260200191505060405180910390f35b34801561053a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612216565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156106b85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600354141515610a00576109ff81610fee565b5b5050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610ba7858585855a61275e565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cce5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002548111151515611157576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806003819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936003546040518082815260200191505060405180910390a150565b600181565b600181565b60608060008060025460405190808252806020026020018201604052801561127a5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156113d55780838381518110151561132a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506112e5565b82935050505090565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156114f0576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061144c565b8260405190808252806020026020018201604052801561151f5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611678578181848151811015156115ce57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611589565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561179e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611c165750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611dcb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611e3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611f67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016002540310151515612382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156123d65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561244a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806003541415156127595761275881610fee565b5b505050565b6000806000600281111561276e57fe5b84600281111561277a57fe5b14156127935761278c8787878661285b565b9150612851565b600160028111156127a057fe5b8460028111156127ac57fe5b14156127c4576127bd878685612874565b9150612850565b6127cd8561288b565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820a8a2b520d7d496943dca4ccdd5d3bd3b7788132d42c3118aa0577fe7365e28210029", - "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100c75780632f54bf6e14610114578063468721a71461016f578063610b592514610227578063694e80c31461026a57806385e332cd146102975780638cff6355146102ee578063a0e67e2b14610345578063b2494df3146103b1578063e009cfde1461041d578063e318b52b14610480578063e75235b814610503578063f8dc5dd91461052e575b005b3480156100d357600080fd5b50610112600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b005b34801561012057600080fd5b50610155600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a04565b604051808215151515815260200191505060405180910390f35b34801561017b57600080fd5b5061020d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561023357600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb1565b005b34801561027657600080fd5b5061029560048036038101908080359060200190929190505050610fee565b005b3480156102a357600080fd5b506102ac611239565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102fa57600080fd5b5061030361123e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035157600080fd5b5061035a611243565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561039d578082015181840152602081019050610382565b505050509050019250505060405180910390f35b3480156103bd57600080fd5b506103c66113de565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104095780820151818401526020810190506103ee565b505050509050019250505060405180910390f35b34801561042957600080fd5b5061047e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611681565b005b34801561048c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af9565b005b34801561050f57600080fd5b5061051861220c565b6040518082815260200191505060405180910390f35b34801561053a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612216565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156106b85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600354141515610a00576109ff81610fee565b5b5050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610ba7858585855a61275e565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cce5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002548111151515611157576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806003819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936003546040518082815260200191505060405180910390a150565b600181565b600181565b60608060008060025460405190808252806020026020018201604052801561127a5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156113d55780838381518110151561132a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506112e5565b82935050505090565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156114f0576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061144c565b8260405190808252806020026020018201604052801561151f5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611678578181848151811015156115ce57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611589565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561179e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611c165750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611dcb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611e3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611f67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016002540310151515612382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156123d65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561244a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612572576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806003541415156127595761275881610fee565b5b505050565b6000806000600281111561276e57fe5b84600281111561277a57fe5b14156127935761278c8787878661285b565b9150612851565b600160028111156127a057fe5b8460028111156127ac57fe5b14156127c4576127bd878685612874565b9150612850565b6127cd8561288b565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820a8a2b520d7d496943dca4ccdd5d3bd3b7788132d42c3118aa0577fe7365e28210029", - "sourceMap": "371:680:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:680:2;;;;;;;", - "deployedSourceMap": "371:680:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2225:627:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5925:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5925:129:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2785:429:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:495;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:495:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:441:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5357:441:6;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;419:54:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;6136:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6136:458:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6136:458:6;;;;;;;;;;;;;;;;;3293:738:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3293:738:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3293:738:5;;;;;;;;;;;;;;;;;1938:511;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:511:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4345:823:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4345:823:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5804:115:6;;;;;;;;;;;;;;;;;;;;;;;3194:817;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3194:817:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:1:6;2388:5;:10;;;;:38;;;;;469:3;2402:24;;:5;:24;;;;2388:38;2380:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:1;2519:6;:13;2526:5;2519:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2511:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2595:6;:23;469:3;2595:23;;;;;;;;;;;;;;;;;;;;;;;;;2579:6;:13;2586:5;2579:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2654:5;2628:6;:23;469:3;2628:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2669:10;;:12;;;;;;;;;;;;;2696:17;2707:5;2696:17;;;;;;;;;;;;;;;;;;;;;;2794:10;2781:9;;:23;;2777:68;;;2818:27;2834:10;2818:15;:27::i;:::-;2777:68;2225:627;;:::o;5925:129::-;6002:4;6046:1;6029:6;:13;6036:5;6029:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;6022:25;;5925:129;;;:::o;2785:429:5:-;2917:12;3025:1;3002:7;:19;3010:10;3002:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2994:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:46;3169:2;3173:5;3180:4;3186:9;3197;3161:7;:46::i;:::-;3151:56;;2785:429;;;;;;:::o;1182:495::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:5;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1649:21;1663:6;1649:21;;;;;;;;;;;;;;;;;;;;;;1182:495;:::o;5357:441:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:10:6;;5527;:24;;5519:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5675:1;5661:10;:15;;5653:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:10;5727:9;:22;;;;5764:27;5781:9;;5764:27;;;;;;;;;;;;;;;;;;5357:441;:::o;488:55:5:-;539:3;488:55;:::o;419:54:6:-;469:3;419:54;:::o;6136:458::-;6202:9;6227:22;6321:13;6348:20;6266:10;;6252:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6252:25:6;;;;6227:50;;6337:1;6321:17;;6371:6;:23;469:3;6371:23;;;;;;;;;;;;;;;;;;;;;;;;;6348:46;;6404:162;469:3;6410:31;;:12;:31;;;;6404:162;;;6472:12;6457:5;6463;6457:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6513:6;:20;6520:12;6513:20;;;;;;;;;;;;;;;;;;;;;;;;;6498:35;;6547:8;;;;;;;6404:162;;;6582:5;6575:12;;6136:458;;;;:::o;3293:738:5:-;3360:9;3419:19;3452:21;3652:22;3441:1;3419:23;;3476:7;:25;539:3;3476:25;;;;;;;;;;;;;;;;;;;;;;;;;3452:49;;3511:132;539:3;3517:33;;:13;:33;;;;3511:132;;;3582:7;:22;3590:13;3582:22;;;;;;;;;;;;;;;;;;;;;;;;;3566:38;;3618:14;;;;;;;3511:132;;;3691:11;3677:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3677:26:5;;;;3652:51;;3761:1;3747:15;;3788:7;:25;539:3;3788:25;;;;;;;;;;;;;;;;;;;;;;;;;3772:41;;3823:180;539:3;3829:33;;:13;:33;;;;3823:180;;;3899:13;3878:5;3884:11;3878:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3942:7;:22;3950:13;3942:22;;;;;;;;;;;;;;;;;;;;;;;;;3926:38;;3978:14;;;;;;;3823:180;;;4019:5;4012:12;;3293:738;;;;:::o;1938:511::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2152:1:5;2141:6;2133:20;;;;:59;;;;;539:3;2157:35;;2165:6;2157:35;;;;2133:59;2125:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:6;2246:38;;:7;:19;2254:10;2246:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2238:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2361:7;:15;2369:6;2361:15;;;;;;;;;;;;;;;;;;;;;;;;;2339:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2404:1;2386:7;:15;2394:6;2386:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2420:22;2435:6;2420:22;;;;;;;;;;;;;;;;;;;;;;1938:511;;:::o;4345:823:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4528:1:6;4516:8;:13;;;;:44;;;;;469:3;4533:27;;:8;:27;;;;4516:44;4508:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4673:1;4653:6;:16;4660:8;4653:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4645:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4819:1;4807:8;:13;;;;:44;;;;;469:3;4824:27;;:8;:27;;;;4807:44;4799:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4925:8;4904:29;;:6;:17;4911:9;4904:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4896:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5005:6;:16;5012:8;5005:16;;;;;;;;;;;;;;;;;;;;;;;;;4986:6;:16;4993:8;4986:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5051:8;5031:6;:17;5038:9;5031:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5088:1;5069:6;:16;5076:8;5069:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;5104:22;5117:8;5104:22;;;;;;;;;;;;;;;;;;;;;;5141:20;5152:8;5141:20;;;;;;;;;;;;;;;;;;;;;;4345:823;;;:::o;5804:115::-;5873:7;5903:9;;5896:16;;5804:115;:::o;3194:817::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:10:6;3415:1;3402:10;;:14;:28;;3394:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3595:1;3586:5;:10;;;;:38;;;;;469:3;3600:24;;:5;:24;;;;3586:38;3578:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3698:5;3677:26;;:6;:17;3684:9;3677:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3776:6;:13;3783:5;3776:13;;;;;;;;;;;;;;;;;;;;;;;;;3756:6;:17;3763:9;3756:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3815:1;3799:6;:13;3806:5;3799:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3826:10;;:12;;;;;;;;;;;;;;3853:19;3866:5;3853:19;;;;;;;;;;;;;;;;;;;;;;3953:10;3940:9;;:23;;3936:68;;;3977:27;3993:10;3977:15;:27::i;:::-;3936:68;3194:817;;;:::o;313:548:3:-;444:12;715:19;489;476:32;;;;;;;;:9;:32;;;;;;;;;472:383;;;532:35;544:2;548:5;555:4;561:5;532:11;:35::i;:::-;522:45;;472:383;;;599:27;586:40;;;;;;;;:9;:40;;;;;;;;;582:273;;;650:36;670:2;674:4;680:5;650:19;:36::i;:::-;640:46;;582:273;;;737:19;751:4;737:13;:19::i;:::-;715:41;;795:1;780:11;:16;;;;770:26;;815:29;832:11;815:29;;;;;;;;;;;;;;;;;;;;;;582:273;472:383;313:548;;;;;;;;:::o;867:309::-;976:12;1158:1;1155;1148:4;1142:11;1135:4;1129;1125:15;1118:5;1114:2;1107:5;1102:58;1091:69;;1077:93;;;;;;:::o;1182:303::-;1284:12;1467:1;1464;1457:4;1451:11;1444:4;1438;1434:15;1430:2;1423:5;1410:59;1399:70;;1385:94;;;;;:::o;1491:261::-;1560:19;1730:4;1724:11;1717:4;1711;1707:15;1704:1;1697:39;1682:54;;1668:78;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./Module.sol\";\nimport \"./ModuleManager.sol\";\nimport \"./OwnerManager.sol\";\n\n\n/// @title Base Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract BaseSafe is ModuleManager, OwnerManager {\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n /// @param to Contract address for optional delegate call.\n /// @param data Data payload for optional delegate call.\n function setupSafe(address[] _owners, uint256 _threshold, address to, bytes data)\n internal\n {\n setupOwners(_owners, _threshold);\n // As setupOwners can only be called if the contract has not been initialized we don't need a check for setupModules\n setupModules(to, data);\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", - "exportedSymbols": { - "BaseSafe": [ - 782 - ] - }, - "id": 783, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 751, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "./Module.sol", - "id": 752, - "nodeType": "ImportDirective", - "scope": 783, - "sourceUnit": 936, - "src": "24:22:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "./ModuleManager.sol", - "id": 753, - "nodeType": "ImportDirective", - "scope": 783, - "sourceUnit": 1213, - "src": "47:29:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "./OwnerManager.sol", - "id": 754, - "nodeType": "ImportDirective", - "scope": 783, - "sourceUnit": 1653, - "src": "77:28:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 755, - "name": "ModuleManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1212, - "src": "392:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 756, - "nodeType": "InheritanceSpecifier", - "src": "392:13:2" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 757, - "name": "OwnerManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1652, - "src": "407:12:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", - "typeString": "contract OwnerManager" - } - }, - "id": 758, - "nodeType": "InheritanceSpecifier", - "src": "407:12:2" - } - ], - "contractDependencies": [ - 892, - 1212, - 1652, - 1666, - 1735 - ], - "contractKind": "contract", - "documentation": "@title Base Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 782, - "linearizedBaseContracts": [ - 782, - 1652, - 1212, - 892, - 1666, - 1735 - ], - "name": "BaseSafe", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 780, - "nodeType": "Block", - "src": "843:206:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 771, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "865:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 772, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 763, - "src": "874:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 770, - "name": "setupOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "853:11:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address[] memory,uint256)" - } - }, - "id": 773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "853:32:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 774, - "nodeType": "ExpressionStatement", - "src": "853:32:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 776, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "1033:2:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 777, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "1037:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 775, - "name": "setupModules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "1020:12:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1020:22:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 779, - "nodeType": "ExpressionStatement", - "src": "1020:22:2" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.", - "id": 781, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setupSafe", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 768, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 761, - "name": "_owners", - "nodeType": "VariableDeclaration", - "scope": 781, - "src": "759:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 759, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "759:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 760, - "length": null, - "nodeType": "ArrayTypeName", - "src": "759:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 763, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 781, - "src": "778:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 762, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "778:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 765, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 781, - "src": "798:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 764, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "798:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 767, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 781, - "src": "810:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 766, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "810:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "758:63:2" - }, - "payable": false, - "returnParameters": { - "id": 769, - "nodeType": "ParameterList", - "parameters": [], - "src": "843:0:2" - }, - "scope": 782, - "src": "740:309:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 783, - "src": "371:680:2" - } - ], - "src": "0:1052:2" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", - "exportedSymbols": { - "BaseSafe": [ - 782 - ] - }, - "id": 783, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 751, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "./Module.sol", - "id": 752, - "nodeType": "ImportDirective", - "scope": 783, - "sourceUnit": 936, - "src": "24:22:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "./ModuleManager.sol", - "id": 753, - "nodeType": "ImportDirective", - "scope": 783, - "sourceUnit": 1213, - "src": "47:29:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "./OwnerManager.sol", - "id": 754, - "nodeType": "ImportDirective", - "scope": 783, - "sourceUnit": 1653, - "src": "77:28:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 755, - "name": "ModuleManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1212, - "src": "392:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 756, - "nodeType": "InheritanceSpecifier", - "src": "392:13:2" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 757, - "name": "OwnerManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1652, - "src": "407:12:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", - "typeString": "contract OwnerManager" - } - }, - "id": 758, - "nodeType": "InheritanceSpecifier", - "src": "407:12:2" - } - ], - "contractDependencies": [ - 892, - 1212, - 1652, - 1666, - 1735 - ], - "contractKind": "contract", - "documentation": "@title Base Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 782, - "linearizedBaseContracts": [ - 782, - 1652, - 1212, - 892, - 1666, - 1735 - ], - "name": "BaseSafe", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 780, - "nodeType": "Block", - "src": "843:206:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 771, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "865:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 772, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 763, - "src": "874:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 770, - "name": "setupOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "853:11:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address[] memory,uint256)" - } - }, - "id": 773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "853:32:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 774, - "nodeType": "ExpressionStatement", - "src": "853:32:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 776, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 765, - "src": "1033:2:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 777, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "1037:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 775, - "name": "setupModules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "1020:12:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1020:22:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 779, - "nodeType": "ExpressionStatement", - "src": "1020:22:2" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.", - "id": 781, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setupSafe", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 768, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 761, - "name": "_owners", - "nodeType": "VariableDeclaration", - "scope": 781, - "src": "759:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 759, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "759:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 760, - "length": null, - "nodeType": "ArrayTypeName", - "src": "759:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 763, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 781, - "src": "778:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 762, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "778:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 765, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 781, - "src": "798:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 764, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "798:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 767, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 781, - "src": "810:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 766, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "810:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "758:63:2" - }, - "payable": false, - "returnParameters": { - "id": 769, - "nodeType": "ParameterList", - "parameters": [], - "src": "843:0:2" - }, - "scope": 782, - "src": "740:309:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 783, - "src": "371:680:2" - } - ], - "src": "0:1052:2" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.886Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/CreateAndAddModules.json b/safe-contracts/build/contracts/CreateAndAddModules.json deleted file mode 100644 index 0bf38afd..00000000 --- a/safe-contracts/build/contracts/CreateAndAddModules.json +++ /dev/null @@ -1,1271 +0,0 @@ -{ - "contractName": "CreateAndAddModules", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "proxyFactory", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "createAndAddModules", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610275806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a72305820032b000033bdda6b988b435c96d1decf8e2f8e4da1b3a0b75e82e9e49c9c8dd10029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a72305820032b000033bdda6b988b435c96d1decf8e2f8e4da1b3a0b75e82e9e49c9c8dd10029", - "sourceMap": "250:1457:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;250:1457:14;;;;;;;", - "deployedSourceMap": "250:1457:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:885;;8:9:-1;5:2;;;30:1;27;20:12;5:2;820:885:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;410:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;410:81:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:885;912:14;950:13;973:9;929:4;:11;912:28;;985:1;973:13;;996:703;1007:6;1003:1;:10;996:703;;;1175:1;1169:4;1165:12;1159:4;1155:23;1149:30;1235:1;1229:4;1225:12;1219:4;1215:23;1276:4;1270:11;1383:1;1376:4;1368:6;1349:17;1336:11;1322:12;1317:3;1304:77;1301:84;1298:2;;;1398:1;1395;1388:12;1298:2;1448:42;1439:6;1433:13;1429:62;1419:72;;1629:4;1622;1615;1596:17;1592:28;1588:39;1584:50;1578:4;1574:61;1571:1;1567:69;1562:74;;1106:544;;;1663:4;:17;;;1681:6;1663:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1663:25:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1663:25:14;;;;996:703;;;820:885;;;;;:::o;410:81::-;476:8;;", - "source": "pragma solidity 0.4.24;\nimport \"../base/Module.sol\";\n\n\n/// @title Create and Add Modules - Allows to create and add multiple module in one transaction.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract CreateAndAddModules {\n\n /// @dev Function required to compile contract. Gnosis Safe function is called instead.\n /// @param module Not used.\n function enableModule(Module module)\n public\n {\n revert();\n }\n\n /// @dev Allows to create and add multiple module in one transaction.\n /// @param proxyFactory Module proxy factory contract.\n /// @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )\n function createAndAddModules(address proxyFactory, bytes data)\n public\n {\n uint256 length = data.length;\n Module module;\n uint256 i = 0;\n while (i < length) {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n\n let output := mload(0x40)\n if eq(delegatecall(gas, proxyFactory, createBytes, createBytesLength, output, 0x20), 0) { revert(0, 0) }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Data is always padded to 32 bytes\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x1f), 0x20), 0x20)))\n }\n this.enableModule(module);\n }\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", - "exportedSymbols": { - "CreateAndAddModules": [ - 1848 - ] - }, - "id": 1849, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1805, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:14" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 1806, - "nodeType": "ImportDirective", - "scope": 1849, - "sourceUnit": 936, - "src": "24:28:14", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Create and Add Modules - Allows to create and add multiple module in one transaction.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1848, - "linearizedBaseContracts": [ - 1848 - ], - "name": "CreateAndAddModules", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1814, - "nodeType": "Block", - "src": "466:25:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1811, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4020, - "src": "476:6:14", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "476:8:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1813, - "nodeType": "ExpressionStatement", - "src": "476:8:14" - } - ] - }, - "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 1815, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "enableModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1809, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1808, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1815, - "src": "432:13:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1807, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "432:6:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "431:15:14" - }, - "payable": false, - "returnParameters": { - "id": 1810, - "nodeType": "ParameterList", - "parameters": [], - "src": "466:0:14" - }, - "scope": 1848, - "src": "410:81:14", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1846, - "nodeType": "Block", - "src": "902:803:14", - "statements": [ - { - "assignments": [ - 1823 - ], - "declarations": [ - { - "constant": false, - "id": 1823, - "name": "length", - "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "912:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1822, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "912:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1826, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1824, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "929:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "929:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "912:28:14" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1828, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "950:13:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1827, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "950:6:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1829, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "950:13:14" - }, - { - "assignments": [ - 1831 - ], - "declarations": [ - { - "constant": false, - "id": 1831, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "973:9:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1830, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "973:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1833, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "985:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "973:13:14" - }, - { - "body": { - "id": 1844, - "nodeType": "Block", - "src": "1015:684:14", - "statements": [ - { - "externalReferences": [ - { - "module": { - "declaration": 1828, - "isOffset": false, - "isSlot": false, - "src": "1419:6:14", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1819, - "isOffset": false, - "isSlot": false, - "src": "1169:4:14", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 1831, - "isOffset": false, - "isSlot": false, - "src": "1175:1:14", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1819, - "isOffset": false, - "isSlot": false, - "src": "1229:4:14", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 1831, - "isOffset": false, - "isSlot": false, - "src": "1235:1:14", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 1831, - "isOffset": false, - "isSlot": false, - "src": "1562:1:14", - "valueSize": 1 - } - }, - { - "proxyFactory": { - "declaration": 1817, - "isOffset": false, - "isSlot": false, - "src": "1322:12:14", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 1831, - "isOffset": false, - "isSlot": false, - "src": "1571:1:14", - "valueSize": 1 - } - } - ], - "id": 1837, - "nodeType": "InlineAssembly", - "operations": "{\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n let output := mload(0x40)\n if eq(delegatecall(gas(), proxyFactory, createBytes, createBytesLength, output, 0x20), 0)\n {\n revert(0, 0)\n }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x1f), 0x20), 0x20)))\n}", - "src": "1097:570:14" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1841, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1828, - "src": "1681:6:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "expression": { - "argumentTypes": null, - "id": 1838, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4056, - "src": "1663:4:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$1848", - "typeString": "contract CreateAndAddModules" - } - }, - "id": 1840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "enableModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1815, - "src": "1663:17:14", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$935_$returns$__$", - "typeString": "function (contract Module) external" - } - }, - "id": 1842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1663:25:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1843, - "nodeType": "ExpressionStatement", - "src": "1663:25:14" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1834, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "1003:1:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 1835, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "1007:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1003:10:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1845, - "nodeType": "WhileStatement", - "src": "996:703:14" - } - ] - }, - "documentation": "@dev Allows to create and add multiple module in one transaction.\n @param proxyFactory Module proxy factory contract.\n @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )", - "id": 1847, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createAndAddModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1817, - "name": "proxyFactory", - "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "849:20:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1816, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "849:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1819, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "871:10:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1818, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "871:5:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "848:34:14" - }, - "payable": false, - "returnParameters": { - "id": 1821, - "nodeType": "ParameterList", - "parameters": [], - "src": "902:0:14" - }, - "scope": 1848, - "src": "820:885:14", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1849, - "src": "250:1457:14" - } - ], - "src": "0:1708:14" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", - "exportedSymbols": { - "CreateAndAddModules": [ - 1848 - ] - }, - "id": 1849, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1805, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:14" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 1806, - "nodeType": "ImportDirective", - "scope": 1849, - "sourceUnit": 936, - "src": "24:28:14", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Create and Add Modules - Allows to create and add multiple module in one transaction.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1848, - "linearizedBaseContracts": [ - 1848 - ], - "name": "CreateAndAddModules", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1814, - "nodeType": "Block", - "src": "466:25:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1811, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4020, - "src": "476:6:14", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "476:8:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1813, - "nodeType": "ExpressionStatement", - "src": "476:8:14" - } - ] - }, - "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 1815, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "enableModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1809, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1808, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1815, - "src": "432:13:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1807, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "432:6:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "431:15:14" - }, - "payable": false, - "returnParameters": { - "id": 1810, - "nodeType": "ParameterList", - "parameters": [], - "src": "466:0:14" - }, - "scope": 1848, - "src": "410:81:14", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1846, - "nodeType": "Block", - "src": "902:803:14", - "statements": [ - { - "assignments": [ - 1823 - ], - "declarations": [ - { - "constant": false, - "id": 1823, - "name": "length", - "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "912:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1822, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "912:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1826, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1824, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "929:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "929:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "912:28:14" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1828, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "950:13:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1827, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "950:6:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1829, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "950:13:14" - }, - { - "assignments": [ - 1831 - ], - "declarations": [ - { - "constant": false, - "id": 1831, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "973:9:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1830, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "973:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1833, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "985:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "973:13:14" - }, - { - "body": { - "id": 1844, - "nodeType": "Block", - "src": "1015:684:14", - "statements": [ - { - "externalReferences": [ - { - "module": { - "declaration": 1828, - "isOffset": false, - "isSlot": false, - "src": "1419:6:14", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1819, - "isOffset": false, - "isSlot": false, - "src": "1169:4:14", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 1831, - "isOffset": false, - "isSlot": false, - "src": "1175:1:14", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1819, - "isOffset": false, - "isSlot": false, - "src": "1229:4:14", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 1831, - "isOffset": false, - "isSlot": false, - "src": "1235:1:14", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 1831, - "isOffset": false, - "isSlot": false, - "src": "1562:1:14", - "valueSize": 1 - } - }, - { - "proxyFactory": { - "declaration": 1817, - "isOffset": false, - "isSlot": false, - "src": "1322:12:14", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 1831, - "isOffset": false, - "isSlot": false, - "src": "1571:1:14", - "valueSize": 1 - } - } - ], - "id": 1837, - "nodeType": "InlineAssembly", - "operations": "{\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n let output := mload(0x40)\n if eq(delegatecall(gas(), proxyFactory, createBytes, createBytesLength, output, 0x20), 0)\n {\n revert(0, 0)\n }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x1f), 0x20), 0x20)))\n}", - "src": "1097:570:14" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1841, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1828, - "src": "1681:6:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "expression": { - "argumentTypes": null, - "id": 1838, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4056, - "src": "1663:4:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$1848", - "typeString": "contract CreateAndAddModules" - } - }, - "id": 1840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "enableModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1815, - "src": "1663:17:14", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$935_$returns$__$", - "typeString": "function (contract Module) external" - } - }, - "id": 1842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1663:25:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1843, - "nodeType": "ExpressionStatement", - "src": "1663:25:14" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1834, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "1003:1:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 1835, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "1007:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1003:10:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1845, - "nodeType": "WhileStatement", - "src": "996:703:14" - } - ] - }, - "documentation": "@dev Allows to create and add multiple module in one transaction.\n @param proxyFactory Module proxy factory contract.\n @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )", - "id": 1847, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createAndAddModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1817, - "name": "proxyFactory", - "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "849:20:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1816, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "849:7:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1819, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1847, - "src": "871:10:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1818, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "871:5:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "848:34:14" - }, - "payable": false, - "returnParameters": { - "id": 1821, - "nodeType": "ParameterList", - "parameters": [], - "src": "902:0:14" - }, - "scope": 1848, - "src": "820:885:14", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1849, - "src": "250:1457:14" - } - ], - "src": "0:1708:14" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0xdf596548e089729535b171d13dec6e510cd22de4", - "transactionHash": "0x8da8ec46f7fd0935a74170caa40eaf18b29e88607b21273c232a09b7a7251d34" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0xa57b8a5584442b467b4689f1144d269d096a3daf", - "transactionHash": "0xbab48fcde913e539ed8f71571e7f0abe2507e0322c9dda28780e5227e7d31d30" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.423Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/DailyLimitModule.json b/safe-contracts/build/contracts/DailyLimitModule.json deleted file mode 100644 index ef2eaf04..00000000 --- a/safe-contracts/build/contracts/DailyLimitModule.json +++ /dev/null @@ -1,6694 +0,0 @@ -{ - "contractName": "DailyLimitModule", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "manager", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - } - ], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "dailyLimits", - "outputs": [ - { - "name": "dailyLimit", - "type": "uint256" - }, - { - "name": "spentToday", - "type": "uint256" - }, - { - "name": "lastDay", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "tokens", - "type": "address[]" - }, - { - "name": "_dailyLimits", - "type": "uint256[]" - } - ], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "token", - "type": "address" - }, - { - "name": "dailyLimit", - "type": "uint256" - } - ], - "name": "changeDailyLimit", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "token", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "executeDailyLimit", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "today", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061129b806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820c9fff2d2f4e7a988305f955b24a67b14ce9f8eb1e561d62a099c2c918f82fd300029", - "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820c9fff2d2f4e7a988305f955b24a67b14ce9f8eb1e561d62a099c2c918f82fd300029", - "sourceMap": "318:3283:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;318:3283:17;;;;;;;", - "deployedSourceMap": "318:3283:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;940:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;940:222:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:987:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1912:987:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1390:158:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1390:158:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;361:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;361:50:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;361:50:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3483:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3483:116:17;;;;;;;;;;;;;;;;;;;;;;;535:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;535:50:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;417:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;417:40:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;417:40:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;940:222;1053:9;1026:12;:10;:12::i;:::-;1065:1;1053:13;;1048:107;1072:6;:13;1068:1;:17;1048:107;;;1140:12;1153:1;1140:15;;;;;;;;;;;;;;;;;;1104:11;:22;1116:6;1123:1;1116:9;;;;;;;;;;;;;;;;;;1104:22;;;;;;;;;;;;;;;:33;;:51;;;;1087:3;;;;;;;1048:107;;;940:222;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;1912:987:17:-;2669:17;2109:7;;;;;;;;;;;2096:29;;;2126:10;2096:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2096:41:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2096:41:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2096:41:17;;;;;;;;;;;;;;;;2088:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2203:1;2197:2;:7;;;;2189:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2263:1;2254:6;:10;2246:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2374:27;2387:5;2394:6;2374:12;:27::i;:::-;2366:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2477:6;2444:11;:18;2456:5;2444:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;2506:1;2497:5;:10;;;2493:400;;;2531:7;;;;;;;;;;;:33;;;2565:2;2569:6;2581:19;2531:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2531:70:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2531:70:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2531:70:17;;;;;;;;;;;;;;;;2523:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2493:400;;;2742:2;2746:6;2689:64;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2689:64:17;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2689:64:17;2669:84;;2775:7;;;;;;;;;;;:33;;;2809:5;2816:1;2819:4;2825:19;2775:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2775:70:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2775:70:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2775:70:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2775:70:17;;;;;;;;;;;;;;;;2767:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2493:400;1912:987;;;;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1390:158:17:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:10:17;1499:11;:18;1511:5;1499:18;;;;;;;;;;;;;;;:29;;:42;;;;1390:158;;:::o;361:50::-;;;;;;;;;;;;;;;;;;;;:::o;3483:116::-;3545:4;3585:6;3579:3;:12;;;;;;;;3572:3;:20;3565:27;;3483:116;:::o;535:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;417:40::-;;;;;;;;;;;;;;;;;;;;:::o;442:300:4:-;656:1;644:7;;;;;;;;;;;636:21;;;628:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;724:10;700:7;;:35;;;;;;;;;;;;;;;;;;442:300::o;2905:486:17:-;2992:4;3012:29;3044:11;:18;3056:5;3044:18;;;;;;;;;;;;;;;3012:50;;3086:10;:18;;;3076:7;:5;:7::i;:::-;:28;3072:126;;;3141:7;:5;:7::i;:::-;3120:10;:18;;:28;;;;3186:1;3162:10;:21;;:25;;;;3072:126;3245:10;:21;;;3235:6;3211:10;:21;;;:30;:55;;:126;;;;;3316:10;:21;;;3307:6;3283:10;:21;;;:30;:54;3211:126;3207:155;;;3358:4;3351:11;;;;3207:155;3379:5;3372:12;;2905:486;;;;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"../base/Module.sol\";\nimport \"../base/ModuleManager.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/Enum.sol\";\n\n\n/// @title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n/// @author Stefan George - \ncontract DailyLimitModule is Module {\n\n string public constant NAME = \"Daily Limit Module\";\n string public constant VERSION = \"0.0.2\";\n\n // dailyLimits mapping maps token address to daily limit settings.\n mapping (address => DailyLimit) public dailyLimits;\n\n struct DailyLimit {\n uint256 dailyLimit;\n uint256 spentToday;\n uint256 lastDay;\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param tokens List of token addresses. Ether is represented with address 0x0.\n /// @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).\n function setup(address[] tokens, uint256[] _dailyLimits)\n public\n {\n setManager();\n for (uint256 i = 0; i < tokens.length; i++)\n dailyLimits[tokens[i]].dailyLimit = _dailyLimits[i];\n }\n\n /// @dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n /// @param token Token contract address.\n /// @param dailyLimit Daily limit in smallest token unit.\n function changeDailyLimit(address token, uint256 dailyLimit)\n public\n authorized\n {\n dailyLimits[token].dailyLimit = dailyLimit;\n }\n\n /// @dev Returns if Safe transaction is a valid daily limit transaction.\n /// @param token Address of the token that should be transfered (0 for Ether)\n /// @param to Address to which the tokens should be transfered\n /// @param amount Amount of tokens (or Ether) that should be transfered\n /// @return Returns if transaction can be executed.\n function executeDailyLimit(address token, address to, uint256 amount)\n public\n {\n // Only Safe owners are allowed to execute daily limit transactions.\n require(OwnerManager(manager).isOwner(msg.sender), \"Method can only be called by an owner\");\n require(to != 0, \"Invalid to address provided\");\n require(amount > 0, \"Invalid amount provided\");\n // Validate that transfer is not exceeding daily limit.\n require(isUnderLimit(token, amount), \"Daily limit has been reached\");\n dailyLimits[token].spentToday += amount;\n if (token == 0) {\n require(manager.execTransactionFromModule(to, amount, \"\", Enum.Operation.Call), \"Could not execute ether transfer\");\n } else {\n bytes memory data = abi.encodeWithSignature(\"transfer(address,uint256)\", to, amount);\n require(manager.execTransactionFromModule(token, 0, data, Enum.Operation.Call), \"Could not execute token transfer\");\n }\n }\n\n function isUnderLimit(address token, uint256 amount)\n internal\n returns (bool)\n {\n DailyLimit storage dailyLimit = dailyLimits[token];\n if (today() > dailyLimit.lastDay) {\n dailyLimit.lastDay = today();\n dailyLimit.spentToday = 0;\n }\n if (dailyLimit.spentToday + amount <= dailyLimit.dailyLimit && \n dailyLimit.spentToday + amount > dailyLimit.spentToday)\n return true;\n return false;\n }\n\n /// @dev Returns last midnight as Unix timestamp.\n /// @return Unix timestamp.\n function today()\n public\n view\n returns (uint)\n {\n return now - (now % 1 days);\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", - "exportedSymbols": { - "DailyLimitModule": [ - 2110 - ] - }, - "id": 2111, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1873, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:17" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 1874, - "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 936, - "src": "24:28:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "../base/ModuleManager.sol", - "id": 1875, - "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 1213, - "src": "53:35:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 1876, - "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 1653, - "src": "89:34:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 1877, - "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 1660, - "src": "124:28:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1878, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "347:6:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "id": 1879, - "nodeType": "InheritanceSpecifier", - "src": "347:6:17" - } - ], - "contractDependencies": [ - 935, - 1693, - 1735 - ], - "contractKind": "contract", - "documentation": "@title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2110, - "linearizedBaseContracts": [ - 2110, - 935, - 1693, - 1735 - ], - "name": "DailyLimitModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 1882, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "361:50:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 1880, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "361:6:17", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 1881, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "391:20:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3", - "typeString": "literal_string \"Daily Limit Module\"" - }, - "value": "Daily Limit Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 1885, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "417:40:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 1883, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "417:6:17", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e32", - "id": 1884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "450:7:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" - }, - "value": "0.0.2" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 1889, - "name": "dailyLimits", - "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "535:50:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" - }, - "typeName": { - "id": 1888, - "keyType": { - "id": 1886, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "544:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "535:31:17", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" - }, - "valueType": { - "contractScope": null, - "id": 1887, - "name": "DailyLimit", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1896, - "src": "555:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DailyLimitModule.DailyLimit", - "id": 1896, - "members": [ - { - "constant": false, - "id": 1891, - "name": "dailyLimit", - "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "620:18:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1890, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "620:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1893, - "name": "spentToday", - "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "648:18:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1892, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "648:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1895, - "name": "lastDay", - "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "676:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1894, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "676:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "DailyLimit", - "nodeType": "StructDefinition", - "scope": 2110, - "src": "592:106:17", - "visibility": "public" - }, - { - "body": { - "id": 1931, - "nodeType": "Block", - "src": "1016:146:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1905, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1026:10:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1026:12:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1907, - "nodeType": "ExpressionStatement", - "src": "1026:12:17" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "id": 1928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1919, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "1104:11:17", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 1923, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1920, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1899, - "src": "1116:6:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1922, - "indexExpression": { - "argumentTypes": null, - "id": 1921, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1123:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1116:9:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1104:22:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 1924, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "dailyLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 1891, - "src": "1104:33:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1925, - "name": "_dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1902, - "src": "1140:12:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1927, - "indexExpression": { - "argumentTypes": null, - "id": 1926, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1153:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1140:15:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1104:51:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1929, - "nodeType": "ExpressionStatement", - "src": "1104:51:17" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1912, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1068:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1913, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1899, - "src": "1072:6:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1072:13:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1068:17:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1930, - "initializationExpression": { - "assignments": [ - 1909 - ], - "declarations": [ - { - "constant": false, - "id": 1909, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1932, - "src": "1053:9:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1908, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1053:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1911, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1910, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1065:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1053:13:17" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1087:3:17", - "subExpression": { - "argumentTypes": null, - "id": 1916, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1087:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1918, - "nodeType": "ExpressionStatement", - "src": "1087:3:17" - }, - "nodeType": "ForStatement", - "src": "1048:107:17" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param tokens List of token addresses. Ether is represented with address 0x0.\n @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).", - "id": 1932, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1903, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1899, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 1932, - "src": "955:16:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1897, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "955:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1898, - "length": null, - "nodeType": "ArrayTypeName", - "src": "955:9:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1902, - "name": "_dailyLimits", - "nodeType": "VariableDeclaration", - "scope": 1932, - "src": "973:22:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1900, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "973:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1901, - "length": null, - "nodeType": "ArrayTypeName", - "src": "973:9:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "954:42:17" - }, - "payable": false, - "returnParameters": { - "id": 1904, - "nodeType": "ParameterList", - "parameters": [], - "src": "1016:0:17" - }, - "scope": 2110, - "src": "940:222:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1948, - "nodeType": "Block", - "src": "1489:59:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1941, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "1499:11:17", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 1943, - "indexExpression": { - "argumentTypes": null, - "id": 1942, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1934, - "src": "1511:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1499:18:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 1944, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "dailyLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 1891, - "src": "1499:29:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1945, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "1531:10:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1499:42:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1947, - "nodeType": "ExpressionStatement", - "src": "1499:42:17" - } - ] - }, - "documentation": "@dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n @param token Token contract address.\n @param dailyLimit Daily limit in smallest token unit.", - "id": 1949, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1939, - "modifierName": { - "argumentTypes": null, - "id": 1938, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "1474:10:17", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1474:10:17" - } - ], - "name": "changeDailyLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1934, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 1949, - "src": "1416:13:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1933, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1416:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1936, - "name": "dailyLimit", - "nodeType": "VariableDeclaration", - "scope": 1949, - "src": "1431:18:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1935, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1431:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1415:35:17" - }, - "payable": false, - "returnParameters": { - "id": 1940, - "nodeType": "ParameterList", - "parameters": [], - "src": "1489:0:17" - }, - "scope": 2110, - "src": "1390:158:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2039, - "nodeType": "Block", - "src": "2001:898:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1963, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "2126:3:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2126:10:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1960, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2109:7:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 1959, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2096:12:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 1961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2096:21:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", - "typeString": "contract OwnerManager" - } - }, - "id": 1962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1602, - "src": "2096:29:17", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 1965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2096:41:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 1966, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2139:39:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", - "typeString": "literal_string \"Method can only be called by an owner\"" - }, - "value": "Method can only be called by an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", - "typeString": "literal_string \"Method can only be called by an owner\"" - } - ], - "id": 1958, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2088:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2088:91:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1968, - "nodeType": "ExpressionStatement", - "src": "2088:91:17" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1970, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1953, - "src": "2197:2:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1971, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2203:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2197:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420746f20616464726573732070726f7669646564", - "id": 1973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2206:29:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1", - "typeString": "literal_string \"Invalid to address provided\"" - }, - "value": "Invalid to address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1", - "typeString": "literal_string \"Invalid to address provided\"" - } - ], - "id": 1969, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2189:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2189:47:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1975, - "nodeType": "ExpressionStatement", - "src": "2189:47:17" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1977, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2254:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2263:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2254:10:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420616d6f756e742070726f7669646564", - "id": 1980, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2266:25:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f", - "typeString": "literal_string \"Invalid amount provided\"" - }, - "value": "Invalid amount provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f", - "typeString": "literal_string \"Invalid amount provided\"" - } - ], - "id": 1976, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2246:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2246:46:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1982, - "nodeType": "ExpressionStatement", - "src": "2246:46:17" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1985, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2387:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1986, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2394:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1984, - "name": "isUnderLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2096, - "src": "2374:12:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 1987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2374:27:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4461696c79206c696d697420686173206265656e2072656163686564", - "id": 1988, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2403:30:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905", - "typeString": "literal_string \"Daily limit has been reached\"" - }, - "value": "Daily limit has been reached" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905", - "typeString": "literal_string \"Daily limit has been reached\"" - } - ], - "id": 1983, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2366:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2366:68:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1990, - "nodeType": "ExpressionStatement", - "src": "2366:68:17" - }, - { - "expression": { - "argumentTypes": null, - "id": 1996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1991, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "2444:11:17", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 1993, - "indexExpression": { - "argumentTypes": null, - "id": 1992, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2456:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2444:18:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 1994, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "2444:29:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 1995, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2477:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2444:39:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1997, - "nodeType": "ExpressionStatement", - "src": "2444:39:17" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1998, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2497:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2506:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2497:10:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2037, - "nodeType": "Block", - "src": "2655:238:17", - "statements": [ - { - "assignments": [ - 2016 - ], - "declarations": [ - { - "constant": false, - "id": 2016, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "2669:17:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2015, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2669:5:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2023, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 2019, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2713:27:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - "value": "transfer(address,uint256)" - }, - { - "argumentTypes": null, - "id": 2020, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1953, - "src": "2742:2:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2021, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2746:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2017, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "2689:3:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2689:23:17", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (string memory) pure returns (bytes memory)" - } - }, - "id": 2022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2689:64:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2669:84:17" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2027, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2809:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2816:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 2029, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2016, - "src": "2819:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2030, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "2825:4:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "2825:14:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2825:19:17", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2025, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2775:7:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 2026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "2775:33:17", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2775:70:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572", - "id": 2034, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2847:34:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709", - "typeString": "literal_string \"Could not execute token transfer\"" - }, - "value": "Could not execute token transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709", - "typeString": "literal_string \"Could not execute token transfer\"" - } - ], - "id": 2024, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2767:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2767:115:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2036, - "nodeType": "ExpressionStatement", - "src": "2767:115:17" - } - ] - }, - "id": 2038, - "nodeType": "IfStatement", - "src": "2493:400:17", - "trueBody": { - "id": 2014, - "nodeType": "Block", - "src": "2509:140:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2004, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1953, - "src": "2565:2:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2005, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2569:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2577:2:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2007, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "2581:4:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "2581:14:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2009, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2581:19:17", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2002, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2531:7:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 2003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "2531:33:17", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2531:70:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465206574686572207472616e73666572", - "id": 2011, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2603:34:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586", - "typeString": "literal_string \"Could not execute ether transfer\"" - }, - "value": "Could not execute ether transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586", - "typeString": "literal_string \"Could not execute ether transfer\"" - } - ], - "id": 2001, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2523:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2523:115:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2013, - "nodeType": "ExpressionStatement", - "src": "2523:115:17" - } - ] - } - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param token Address of the token that should be transfered (0 for Ether)\n @param to Address to which the tokens should be transfered\n @param amount Amount of tokens (or Ether) that should be transfered\n @return Returns if transaction can be executed.", - "id": 2040, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeDailyLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1951, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "1939:13:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1950, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1939:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1953, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "1954:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1952, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1954:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1955, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "1966:14:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1954, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1966:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1938:43:17" - }, - "payable": false, - "returnParameters": { - "id": 1957, - "nodeType": "ParameterList", - "parameters": [], - "src": "2001:0:17" - }, - "scope": 2110, - "src": "1912:987:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2095, - "nodeType": "Block", - "src": "3002:389:17", - "statements": [ - { - "assignments": [ - 2050 - ], - "declarations": [ - { - "constant": false, - "id": 2050, - "name": "dailyLimit", - "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "3012:29:17", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit" - }, - "typeName": { - "contractScope": null, - "id": 2049, - "name": "DailyLimit", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1896, - "src": "3012:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2054, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2051, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "3044:11:17", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 2053, - "indexExpression": { - "argumentTypes": null, - "id": 2052, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "3056:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3044:18:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3012:50:17" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2055, - "name": "today", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "3076:5:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3076:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2057, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3086:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2058, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1895, - "src": "3086:18:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3076:28:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2074, - "nodeType": "IfStatement", - "src": "3072:126:17", - "trueBody": { - "id": 2073, - "nodeType": "Block", - "src": "3106:92:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2060, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3120:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2062, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1895, - "src": "3120:18:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2063, - "name": "today", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "3141:5:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 2064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3141:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3120:28:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2066, - "nodeType": "ExpressionStatement", - "src": "3120:28:17" - }, - { - "expression": { - "argumentTypes": null, - "id": 2071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2067, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3162:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2069, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3162:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 2070, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3186:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3162:25:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2072, - "nodeType": "ExpressionStatement", - "src": "3162:25:17" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2075, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3211:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2076, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3211:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2077, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "3235:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3211:30:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2079, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3245:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2080, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 1891, - "src": "3245:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3211:55:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2082, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3283:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2083, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3283:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2084, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "3307:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3283:30:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2086, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3316:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2087, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3316:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3283:54:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3211:126:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2092, - "nodeType": "IfStatement", - "src": "3207:155:17", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2090, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3358:4:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2048, - "id": 2091, - "nodeType": "Return", - "src": "3351:11:17" - } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2093, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3379:5:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2048, - "id": 2094, - "nodeType": "Return", - "src": "3372:12:17" - } - ] - }, - "documentation": null, - "id": 2096, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "isUnderLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2045, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2042, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "2927:13:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2041, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2927:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2044, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "2942:14:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2043, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2942:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2926:31:17" - }, - "payable": false, - "returnParameters": { - "id": 2048, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2047, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "2992:4:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2046, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2992:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2991:6:17" - }, - "scope": 2110, - "src": "2905:486:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2108, - "nodeType": "Block", - "src": "3555:44:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2101, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4017, - "src": "3572:3:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2102, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4017, - "src": "3579:3:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3585:6:17", - "subdenomination": "days", - "typeDescriptions": { - "typeIdentifier": "t_rational_86400_by_1", - "typeString": "int_const 86400" - }, - "value": "1" - }, - "src": "3579:12:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2105, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3578:14:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3572:20:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2100, - "id": 2107, - "nodeType": "Return", - "src": "3565:27:17" - } - ] - }, - "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 2109, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "today", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2097, - "nodeType": "ParameterList", - "parameters": [], - "src": "3497:2:17" - }, - "payable": false, - "returnParameters": { - "id": 2100, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2099, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2109, - "src": "3545:4:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2098, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3545:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3544:6:17" - }, - "scope": 2110, - "src": "3483:116:17", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2111, - "src": "318:3283:17" - } - ], - "src": "0:3602:17" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", - "exportedSymbols": { - "DailyLimitModule": [ - 2110 - ] - }, - "id": 2111, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1873, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:17" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 1874, - "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 936, - "src": "24:28:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "../base/ModuleManager.sol", - "id": 1875, - "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 1213, - "src": "53:35:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 1876, - "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 1653, - "src": "89:34:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 1877, - "nodeType": "ImportDirective", - "scope": 2111, - "sourceUnit": 1660, - "src": "124:28:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1878, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "347:6:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "id": 1879, - "nodeType": "InheritanceSpecifier", - "src": "347:6:17" - } - ], - "contractDependencies": [ - 935, - 1693, - 1735 - ], - "contractKind": "contract", - "documentation": "@title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2110, - "linearizedBaseContracts": [ - 2110, - 935, - 1693, - 1735 - ], - "name": "DailyLimitModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 1882, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "361:50:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 1880, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "361:6:17", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 1881, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "391:20:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3", - "typeString": "literal_string \"Daily Limit Module\"" - }, - "value": "Daily Limit Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 1885, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "417:40:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 1883, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "417:6:17", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e32", - "id": 1884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "450:7:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" - }, - "value": "0.0.2" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 1889, - "name": "dailyLimits", - "nodeType": "VariableDeclaration", - "scope": 2110, - "src": "535:50:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" - }, - "typeName": { - "id": 1888, - "keyType": { - "id": 1886, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "544:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "535:31:17", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" - }, - "valueType": { - "contractScope": null, - "id": 1887, - "name": "DailyLimit", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1896, - "src": "555:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DailyLimitModule.DailyLimit", - "id": 1896, - "members": [ - { - "constant": false, - "id": 1891, - "name": "dailyLimit", - "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "620:18:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1890, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "620:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1893, - "name": "spentToday", - "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "648:18:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1892, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "648:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1895, - "name": "lastDay", - "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "676:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1894, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "676:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "DailyLimit", - "nodeType": "StructDefinition", - "scope": 2110, - "src": "592:106:17", - "visibility": "public" - }, - { - "body": { - "id": 1931, - "nodeType": "Block", - "src": "1016:146:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1905, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1026:10:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1026:12:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1907, - "nodeType": "ExpressionStatement", - "src": "1026:12:17" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "id": 1928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1919, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "1104:11:17", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 1923, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1920, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1899, - "src": "1116:6:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1922, - "indexExpression": { - "argumentTypes": null, - "id": 1921, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1123:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1116:9:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1104:22:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 1924, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "dailyLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 1891, - "src": "1104:33:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1925, - "name": "_dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1902, - "src": "1140:12:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1927, - "indexExpression": { - "argumentTypes": null, - "id": 1926, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1153:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1140:15:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1104:51:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1929, - "nodeType": "ExpressionStatement", - "src": "1104:51:17" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1912, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1068:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1913, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1899, - "src": "1072:6:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1072:13:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1068:17:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1930, - "initializationExpression": { - "assignments": [ - 1909 - ], - "declarations": [ - { - "constant": false, - "id": 1909, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1932, - "src": "1053:9:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1908, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1053:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1911, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1910, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1065:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1053:13:17" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1087:3:17", - "subExpression": { - "argumentTypes": null, - "id": 1916, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1909, - "src": "1087:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1918, - "nodeType": "ExpressionStatement", - "src": "1087:3:17" - }, - "nodeType": "ForStatement", - "src": "1048:107:17" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param tokens List of token addresses. Ether is represented with address 0x0.\n @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).", - "id": 1932, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1903, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1899, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 1932, - "src": "955:16:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1897, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "955:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1898, - "length": null, - "nodeType": "ArrayTypeName", - "src": "955:9:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1902, - "name": "_dailyLimits", - "nodeType": "VariableDeclaration", - "scope": 1932, - "src": "973:22:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1900, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "973:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1901, - "length": null, - "nodeType": "ArrayTypeName", - "src": "973:9:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "954:42:17" - }, - "payable": false, - "returnParameters": { - "id": 1904, - "nodeType": "ParameterList", - "parameters": [], - "src": "1016:0:17" - }, - "scope": 2110, - "src": "940:222:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1948, - "nodeType": "Block", - "src": "1489:59:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1941, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "1499:11:17", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 1943, - "indexExpression": { - "argumentTypes": null, - "id": 1942, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1934, - "src": "1511:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1499:18:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 1944, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "dailyLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 1891, - "src": "1499:29:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1945, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "1531:10:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1499:42:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1947, - "nodeType": "ExpressionStatement", - "src": "1499:42:17" - } - ] - }, - "documentation": "@dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n @param token Token contract address.\n @param dailyLimit Daily limit in smallest token unit.", - "id": 1949, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1939, - "modifierName": { - "argumentTypes": null, - "id": 1938, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "1474:10:17", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1474:10:17" - } - ], - "name": "changeDailyLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1934, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 1949, - "src": "1416:13:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1933, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1416:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1936, - "name": "dailyLimit", - "nodeType": "VariableDeclaration", - "scope": 1949, - "src": "1431:18:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1935, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1431:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1415:35:17" - }, - "payable": false, - "returnParameters": { - "id": 1940, - "nodeType": "ParameterList", - "parameters": [], - "src": "1489:0:17" - }, - "scope": 2110, - "src": "1390:158:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2039, - "nodeType": "Block", - "src": "2001:898:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1963, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "2126:3:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2126:10:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1960, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2109:7:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 1959, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2096:12:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 1961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2096:21:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", - "typeString": "contract OwnerManager" - } - }, - "id": 1962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1602, - "src": "2096:29:17", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 1965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2096:41:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 1966, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2139:39:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", - "typeString": "literal_string \"Method can only be called by an owner\"" - }, - "value": "Method can only be called by an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", - "typeString": "literal_string \"Method can only be called by an owner\"" - } - ], - "id": 1958, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2088:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2088:91:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1968, - "nodeType": "ExpressionStatement", - "src": "2088:91:17" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1970, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1953, - "src": "2197:2:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1971, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2203:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2197:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420746f20616464726573732070726f7669646564", - "id": 1973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2206:29:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1", - "typeString": "literal_string \"Invalid to address provided\"" - }, - "value": "Invalid to address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1", - "typeString": "literal_string \"Invalid to address provided\"" - } - ], - "id": 1969, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2189:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2189:47:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1975, - "nodeType": "ExpressionStatement", - "src": "2189:47:17" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1977, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2254:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2263:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2254:10:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420616d6f756e742070726f7669646564", - "id": 1980, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2266:25:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f", - "typeString": "literal_string \"Invalid amount provided\"" - }, - "value": "Invalid amount provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f", - "typeString": "literal_string \"Invalid amount provided\"" - } - ], - "id": 1976, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2246:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2246:46:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1982, - "nodeType": "ExpressionStatement", - "src": "2246:46:17" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1985, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2387:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1986, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2394:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1984, - "name": "isUnderLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2096, - "src": "2374:12:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 1987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2374:27:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4461696c79206c696d697420686173206265656e2072656163686564", - "id": 1988, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2403:30:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905", - "typeString": "literal_string \"Daily limit has been reached\"" - }, - "value": "Daily limit has been reached" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905", - "typeString": "literal_string \"Daily limit has been reached\"" - } - ], - "id": 1983, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2366:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2366:68:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1990, - "nodeType": "ExpressionStatement", - "src": "2366:68:17" - }, - { - "expression": { - "argumentTypes": null, - "id": 1996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1991, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "2444:11:17", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 1993, - "indexExpression": { - "argumentTypes": null, - "id": 1992, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2456:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2444:18:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 1994, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "2444:29:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 1995, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2477:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2444:39:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1997, - "nodeType": "ExpressionStatement", - "src": "2444:39:17" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1998, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2497:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2506:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2497:10:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2037, - "nodeType": "Block", - "src": "2655:238:17", - "statements": [ - { - "assignments": [ - 2016 - ], - "declarations": [ - { - "constant": false, - "id": 2016, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "2669:17:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2015, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2669:5:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2023, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 2019, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2713:27:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - "value": "transfer(address,uint256)" - }, - { - "argumentTypes": null, - "id": 2020, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1953, - "src": "2742:2:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2021, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2746:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2017, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "2689:3:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2689:23:17", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (string memory) pure returns (bytes memory)" - } - }, - "id": 2022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2689:64:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2669:84:17" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2027, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "2809:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2816:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 2029, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2016, - "src": "2819:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2030, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "2825:4:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "2825:14:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2825:19:17", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2025, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2775:7:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 2026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "2775:33:17", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2775:70:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572", - "id": 2034, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2847:34:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709", - "typeString": "literal_string \"Could not execute token transfer\"" - }, - "value": "Could not execute token transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709", - "typeString": "literal_string \"Could not execute token transfer\"" - } - ], - "id": 2024, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2767:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2767:115:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2036, - "nodeType": "ExpressionStatement", - "src": "2767:115:17" - } - ] - }, - "id": 2038, - "nodeType": "IfStatement", - "src": "2493:400:17", - "trueBody": { - "id": 2014, - "nodeType": "Block", - "src": "2509:140:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2004, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1953, - "src": "2565:2:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2005, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1955, - "src": "2569:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2577:2:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2007, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "2581:4:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "2581:14:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2009, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2581:19:17", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2002, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2531:7:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 2003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "2531:33:17", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2531:70:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465206574686572207472616e73666572", - "id": 2011, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2603:34:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586", - "typeString": "literal_string \"Could not execute ether transfer\"" - }, - "value": "Could not execute ether transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586", - "typeString": "literal_string \"Could not execute ether transfer\"" - } - ], - "id": 2001, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2523:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2523:115:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2013, - "nodeType": "ExpressionStatement", - "src": "2523:115:17" - } - ] - } - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param token Address of the token that should be transfered (0 for Ether)\n @param to Address to which the tokens should be transfered\n @param amount Amount of tokens (or Ether) that should be transfered\n @return Returns if transaction can be executed.", - "id": 2040, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeDailyLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1951, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "1939:13:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1950, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1939:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1953, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "1954:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1952, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1954:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1955, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2040, - "src": "1966:14:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1954, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1966:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1938:43:17" - }, - "payable": false, - "returnParameters": { - "id": 1957, - "nodeType": "ParameterList", - "parameters": [], - "src": "2001:0:17" - }, - "scope": 2110, - "src": "1912:987:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2095, - "nodeType": "Block", - "src": "3002:389:17", - "statements": [ - { - "assignments": [ - 2050 - ], - "declarations": [ - { - "constant": false, - "id": 2050, - "name": "dailyLimit", - "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "3012:29:17", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit" - }, - "typeName": { - "contractScope": null, - "id": 2049, - "name": "DailyLimit", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1896, - "src": "3012:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2054, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2051, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "3044:11:17", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1896_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 2053, - "indexExpression": { - "argumentTypes": null, - "id": 2052, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "3056:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3044:18:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3012:50:17" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2055, - "name": "today", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "3076:5:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3076:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2057, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3086:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2058, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1895, - "src": "3086:18:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3076:28:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2074, - "nodeType": "IfStatement", - "src": "3072:126:17", - "trueBody": { - "id": 2073, - "nodeType": "Block", - "src": "3106:92:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2060, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3120:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2062, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1895, - "src": "3120:18:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2063, - "name": "today", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "3141:5:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 2064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3141:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3120:28:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2066, - "nodeType": "ExpressionStatement", - "src": "3120:28:17" - }, - { - "expression": { - "argumentTypes": null, - "id": 2071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2067, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3162:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2069, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3162:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 2070, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3186:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3162:25:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2072, - "nodeType": "ExpressionStatement", - "src": "3162:25:17" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2075, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3211:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2076, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3211:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2077, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "3235:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3211:30:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2079, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3245:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2080, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 1891, - "src": "3245:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3211:55:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2082, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3283:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2083, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3283:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2084, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "3307:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3283:30:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2086, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "3316:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1896_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2087, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 1893, - "src": "3316:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3283:54:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3211:126:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2092, - "nodeType": "IfStatement", - "src": "3207:155:17", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2090, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3358:4:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2048, - "id": 2091, - "nodeType": "Return", - "src": "3351:11:17" - } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2093, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3379:5:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2048, - "id": 2094, - "nodeType": "Return", - "src": "3372:12:17" - } - ] - }, - "documentation": null, - "id": 2096, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "isUnderLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2045, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2042, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "2927:13:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2041, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2927:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2044, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "2942:14:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2043, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2942:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2926:31:17" - }, - "payable": false, - "returnParameters": { - "id": 2048, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2047, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "2992:4:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2046, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2992:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2991:6:17" - }, - "scope": 2110, - "src": "2905:486:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2108, - "nodeType": "Block", - "src": "3555:44:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2101, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4017, - "src": "3572:3:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2102, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4017, - "src": "3579:3:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3585:6:17", - "subdenomination": "days", - "typeDescriptions": { - "typeIdentifier": "t_rational_86400_by_1", - "typeString": "int_const 86400" - }, - "value": "1" - }, - "src": "3579:12:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2105, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3578:14:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3572:20:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2100, - "id": 2107, - "nodeType": "Return", - "src": "3565:27:17" - } - ] - }, - "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 2109, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "today", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2097, - "nodeType": "ParameterList", - "parameters": [], - "src": "3497:2:17" - }, - "payable": false, - "returnParameters": { - "id": 2100, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2099, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2109, - "src": "3545:4:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2098, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3545:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3544:6:17" - }, - "scope": 2110, - "src": "3483:116:17", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2111, - "src": "318:3283:17" - } - ], - "src": "0:3602:17" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0xf0bbca169ff7ec1e51596e36e19ea088e35d39aa", - "transactionHash": "0x0a19ed756be8febe3359788d84328da7bb2edbee17822b64f2382ac5fc1469cd" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0xe982e462b094850f12af94d21d470e21be9d0e9c", - "transactionHash": "0xe126a1864e545d56f9cdb9c7e717f135088801a7ad81bf2e355225b217c44b87" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.444Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/DelegateConstructorProxy.json b/safe-contracts/build/contracts/DelegateConstructorProxy.json deleted file mode 100644 index d681100e..00000000 --- a/safe-contracts/build/contracts/DelegateConstructorProxy.json +++ /dev/null @@ -1,666 +0,0 @@ -{ - "contractName": "DelegateConstructorProxy", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "proxyType", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "implementation", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - }, - { - "name": "initializer", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506040516102fc3803806102fc83398101806040528101908080519060200190929190805182019291905050508160008173ffffffffffffffffffffffffffffffffffffffff16141515156100f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101805773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e600082141561017c573d81fd5b5050505b505061016b806101916000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820b2de5726e0943c0fae0f20300b651ccee9090eab24beaf21fd7dbc55f5eef5970029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820b2de5726e0943c0fae0f20300b651ccee9090eab24beaf21fd7dbc55f5eef5970029", - "sourceMap": "355:882:21:-;;;610:625;8:9:-1;5:2;;;30:1;27;20:12;5:2;610:625:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:11;593:1:23;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;735:1:21;714:11;:18;:22;710:519;;;879:42;875:1;869:8;865:57;1043:1;1040;1026:11;1020:18;1013:4;1000:11;996:22;984:10;976:5;971:3;967:15;954:91;1079:4;1073:11;1124:14;1121:1;1116:3;1101:38;1171:1;1162:7;1159:14;1156:2;;;1188:14;1183:3;1176:27;1156:2;829:390;;;;610:625;;355:882;;;;;;", - "deployedSourceMap": "355:882:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42:23;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:23;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:23;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302:118;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./Proxy.sol\";\n\n\n/// @title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract DelegateConstructorProxy is Proxy {\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n /// @param initializer Data used for a delegate call to initialize the contract.\n constructor(address _masterCopy, bytes initializer) Proxy(_masterCopy)\n public\n {\n if (initializer.length > 0) {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas, 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize)\n if eq(success, 0) { revert(ptr, returndatasize) }\n }\n }\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", - "exportedSymbols": { - "DelegateConstructorProxy": [ - 2740 - ] - }, - "id": 2741, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2718, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:21" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "file": "./Proxy.sol", - "id": 2719, - "nodeType": "ImportDirective", - "scope": 2741, - "sourceUnit": 2841, - "src": "24:21:21", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2720, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "392:5:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - }, - "id": 2721, - "nodeType": "InheritanceSpecifier", - "src": "392:5:21" - } - ], - "contractDependencies": [ - 2840 - ], - "contractKind": "contract", - "documentation": "@title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 2740, - "linearizedBaseContracts": [ - 2740, - 2840 - ], - "name": "DelegateConstructorProxy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2738, - "nodeType": "Block", - "src": "700:535:21", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2731, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2725, - "src": "714:11:21", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "714:18:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "735:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "714:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2737, - "nodeType": "IfStatement", - "src": "710:519:21", - "trueBody": { - "id": 2736, - "nodeType": "Block", - "src": "738:491:21", - "statements": [ - { - "externalReferences": [ - { - "initializer": { - "declaration": 2725, - "isOffset": false, - "isSlot": false, - "src": "1026:11:21", - "valueSize": 1 - } - }, - { - "initializer": { - "declaration": 2725, - "isOffset": false, - "isSlot": false, - "src": "1000:11:21", - "valueSize": 1 - } - } - ], - "id": 2735, - "nodeType": "InlineAssembly", - "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas(), 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n if eq(success, 0)\n {\n revert(ptr, returndatasize())\n }\n}", - "src": "820:409:21" - } - ] - } - } - ] - }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.", - "id": 2739, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2728, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2723, - "src": "668:11:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 2729, - "modifierName": { - "argumentTypes": null, - "id": 2727, - "name": "Proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2840, - "src": "662:5:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$2840_$", - "typeString": "type(contract Proxy)" - } - }, - "nodeType": "ModifierInvocation", - "src": "662:18:21" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2726, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2723, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 2739, - "src": "622:19:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2722, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "622:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2725, - "name": "initializer", - "nodeType": "VariableDeclaration", - "scope": 2739, - "src": "643:17:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2724, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "643:5:21", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "621:40:21" - }, - "payable": false, - "returnParameters": { - "id": 2730, - "nodeType": "ParameterList", - "parameters": [], - "src": "700:0:21" - }, - "scope": 2740, - "src": "610:625:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2741, - "src": "355:882:21" - } - ], - "src": "0:1238:21" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", - "exportedSymbols": { - "DelegateConstructorProxy": [ - 2740 - ] - }, - "id": 2741, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2718, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:21" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "file": "./Proxy.sol", - "id": 2719, - "nodeType": "ImportDirective", - "scope": 2741, - "sourceUnit": 2841, - "src": "24:21:21", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2720, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "392:5:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - }, - "id": 2721, - "nodeType": "InheritanceSpecifier", - "src": "392:5:21" - } - ], - "contractDependencies": [ - 2840 - ], - "contractKind": "contract", - "documentation": "@title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 2740, - "linearizedBaseContracts": [ - 2740, - 2840 - ], - "name": "DelegateConstructorProxy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2738, - "nodeType": "Block", - "src": "700:535:21", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2731, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2725, - "src": "714:11:21", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "714:18:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "735:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "714:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2737, - "nodeType": "IfStatement", - "src": "710:519:21", - "trueBody": { - "id": 2736, - "nodeType": "Block", - "src": "738:491:21", - "statements": [ - { - "externalReferences": [ - { - "initializer": { - "declaration": 2725, - "isOffset": false, - "isSlot": false, - "src": "1026:11:21", - "valueSize": 1 - } - }, - { - "initializer": { - "declaration": 2725, - "isOffset": false, - "isSlot": false, - "src": "1000:11:21", - "valueSize": 1 - } - } - ], - "id": 2735, - "nodeType": "InlineAssembly", - "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas(), 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n if eq(success, 0)\n {\n revert(ptr, returndatasize())\n }\n}", - "src": "820:409:21" - } - ] - } - } - ] - }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.", - "id": 2739, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2728, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2723, - "src": "668:11:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 2729, - "modifierName": { - "argumentTypes": null, - "id": 2727, - "name": "Proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2840, - "src": "662:5:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$2840_$", - "typeString": "type(contract Proxy)" - } - }, - "nodeType": "ModifierInvocation", - "src": "662:18:21" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2726, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2723, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 2739, - "src": "622:19:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2722, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "622:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2725, - "name": "initializer", - "nodeType": "VariableDeclaration", - "scope": 2739, - "src": "643:17:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2724, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "643:5:21", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "621:40:21" - }, - "payable": false, - "returnParameters": { - "id": 2730, - "nodeType": "ParameterList", - "parameters": [], - "src": "700:0:21" - }, - "scope": 2740, - "src": "610:625:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2741, - "src": "355:882:21" - } - ], - "src": "0:1238:21" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.944Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Enum.json b/safe-contracts/build/contracts/Enum.json deleted file mode 100644 index 96e3a09e..00000000 --- a/safe-contracts/build/contracts/Enum.json +++ /dev/null @@ -1,151 +0,0 @@ -{ - "contractName": "Enum", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820e8f35ac07bd2a835eacbee7ba38b086a012b371f6bdc0da93abfb72fe3b38ec20029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820e8f35ac07bd2a835eacbee7ba38b086a012b371f6bdc0da93abfb72fe3b38ec20029", - "sourceMap": "115:95:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;115:95:7;;;;;;;", - "deployedSourceMap": "115:95:7:-;;;;;", - "source": "pragma solidity 0.4.24;\n\n\n/// @title Enum - Collection of enums\n/// @author Richard Meissner - \ncontract Enum {\n enum Operation {\n Call,\n DelegateCall,\n Create\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "exportedSymbols": { - "Enum": [ - 1659 - ] - }, - "id": 1660, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1654, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Enum - Collection of enums\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1659, - "linearizedBaseContracts": [ - 1659 - ], - "name": "Enum", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "Enum.Operation", - "id": 1658, - "members": [ - { - "id": 1655, - "name": "Call", - "nodeType": "EnumValue", - "src": "160:4:7" - }, - { - "id": 1656, - "name": "DelegateCall", - "nodeType": "EnumValue", - "src": "174:12:7" - }, - { - "id": 1657, - "name": "Create", - "nodeType": "EnumValue", - "src": "196:6:7" - } - ], - "name": "Operation", - "nodeType": "EnumDefinition", - "src": "135:73:7" - } - ], - "scope": 1660, - "src": "115:95:7" - } - ], - "src": "0:211:7" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "exportedSymbols": { - "Enum": [ - 1659 - ] - }, - "id": 1660, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1654, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Enum - Collection of enums\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1659, - "linearizedBaseContracts": [ - 1659 - ], - "name": "Enum", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "Enum.Operation", - "id": 1658, - "members": [ - { - "id": 1655, - "name": "Call", - "nodeType": "EnumValue", - "src": "160:4:7" - }, - { - "id": 1656, - "name": "DelegateCall", - "nodeType": "EnumValue", - "src": "174:12:7" - }, - { - "id": 1657, - "name": "Create", - "nodeType": "EnumValue", - "src": "196:6:7" - } - ], - "name": "Operation", - "nodeType": "EnumDefinition", - "src": "135:73:7" - } - ], - "scope": 1660, - "src": "115:95:7" - } - ], - "src": "0:211:7" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.921Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/EtherPaymentFallback.json b/safe-contracts/build/contracts/EtherPaymentFallback.json deleted file mode 100644 index 68be0322..00000000 --- a/safe-contracts/build/contracts/EtherPaymentFallback.json +++ /dev/null @@ -1,171 +0,0 @@ -{ - "contractName": "EtherPaymentFallback", - "abi": [ - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "bytecode": "0x6080604052348015600f57600080fd5b50603280601d6000396000f30060806040520000a165627a7a723058200c4d2e3a714c9a462ec30383030f16e7035d8647c8e18373ebc02f115b5a1d690029", - "deployedBytecode": "0x60806040520000a165627a7a723058200c4d2e3a714c9a462ec30383030f16e7035d8647c8e18373ebc02f115b5a1d690029", - "sourceMap": "167:155:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;167:155:8;;;;;;;", - "deployedSourceMap": "167:155:8:-;;;", - "source": "pragma solidity 0.4.24;\n\n\n/// @title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n/// @author Richard Meissner - \ncontract EtherPaymentFallback {\n\n /// @dev Fallback function accepts Ether transactions.\n function ()\n external\n payable\n {\n\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", - "exportedSymbols": { - "EtherPaymentFallback": [ - 1666 - ] - }, - "id": 1667, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1661, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1666, - "linearizedBaseContracts": [ - 1666 - ], - "name": "EtherPaymentFallback", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1664, - "nodeType": "Block", - "src": "312:8:8", - "statements": [] - }, - "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 1665, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1662, - "nodeType": "ParameterList", - "parameters": [], - "src": "272:2:8" - }, - "payable": true, - "returnParameters": { - "id": 1663, - "nodeType": "ParameterList", - "parameters": [], - "src": "312:0:8" - }, - "scope": 1666, - "src": "263:57:8", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1667, - "src": "167:155:8" - } - ], - "src": "0:323:8" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", - "exportedSymbols": { - "EtherPaymentFallback": [ - 1666 - ] - }, - "id": 1667, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1661, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1666, - "linearizedBaseContracts": [ - 1666 - ], - "name": "EtherPaymentFallback", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1664, - "nodeType": "Block", - "src": "312:8:8", - "statements": [] - }, - "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 1665, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1662, - "nodeType": "ParameterList", - "parameters": [], - "src": "272:2:8" - }, - "payable": true, - "returnParameters": { - "id": 1663, - "nodeType": "ParameterList", - "parameters": [], - "src": "312:0:8" - }, - "scope": 1666, - "src": "263:57:8", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1667, - "src": "167:155:8" - } - ], - "src": "0:323:8" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.922Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Executor.json b/safe-contracts/build/contracts/Executor.json deleted file mode 100644 index 23d86b1f..00000000 --- a/safe-contracts/build/contracts/Executor.json +++ /dev/null @@ -1,3055 +0,0 @@ -{ - "contractName": "Executor", - "abi": [ - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "newContract", - "type": "address" - } - ], - "name": "ContractCreation", - "type": "event" - } - ], - "bytecode": "0x6080604052348015600f57600080fd5b50603280601d6000396000f30060806040520000a165627a7a723058204f5ad88ba445e0f0319a85784ddeaeef53872efa9db1711743380c1ef494d78f0029", - "deployedBytecode": "0x60806040520000a165627a7a723058204f5ad88ba445e0f0319a85784ddeaeef53872efa9db1711743380c1ef494d78f0029", - "sourceMap": "214:1540:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;214:1540:3;;;;;;;", - "deployedSourceMap": "214:1540:3:-;;;", - "source": "pragma solidity 0.4.24;\nimport \"../common/Enum.sol\";\nimport \"../common/EtherPaymentFallback.sol\";\n\n\n/// @title Executor - A contract that can execute transactions\n/// @author Richard Meissner - \ncontract Executor is EtherPaymentFallback {\n\n event ContractCreation(address newContract);\n\n function execute(address to, uint256 value, bytes data, Enum.Operation operation, uint256 txGas)\n internal\n returns (bool success)\n {\n if (operation == Enum.Operation.Call)\n success = executeCall(to, value, data, txGas);\n else if (operation == Enum.Operation.DelegateCall)\n success = executeDelegateCall(to, data, txGas);\n else {\n address newContract = executeCreate(data);\n success = newContract != 0;\n emit ContractCreation(newContract);\n }\n }\n\n function executeCall(address to, uint256 value, bytes data, uint256 txGas)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeDelegateCall(address to, bytes data, uint256 txGas)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeCreate(bytes data)\n internal\n returns (address newContract)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n newContract := create(0, add(data, 0x20), mload(data))\n }\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", - "exportedSymbols": { - "Executor": [ - 892 - ] - }, - "id": 893, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 784, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 785, - "nodeType": "ImportDirective", - "scope": 893, - "sourceUnit": 1660, - "src": "24:28:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", - "file": "../common/EtherPaymentFallback.sol", - "id": 786, - "nodeType": "ImportDirective", - "scope": 893, - "sourceUnit": 1667, - "src": "53:44:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 787, - "name": "EtherPaymentFallback", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1666, - "src": "235:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EtherPaymentFallback_$1666", - "typeString": "contract EtherPaymentFallback" - } - }, - "id": 788, - "nodeType": "InheritanceSpecifier", - "src": "235:20:3" - } - ], - "contractDependencies": [ - 1666 - ], - "contractKind": "contract", - "documentation": "@title Executor - A contract that can execute transactions\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 892, - "linearizedBaseContracts": [ - 892, - 1666 - ], - "name": "Executor", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 792, - "name": "ContractCreation", - "nodeType": "EventDefinition", - "parameters": { - "id": 791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 790, - "indexed": false, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 792, - "src": "286:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 789, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "286:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "285:21:3" - }, - "src": "263:44:3" - }, - { - "body": { - "id": 853, - "nodeType": "Block", - "src": "462:399:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 807, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "476:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 808, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "489:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", - "typeString": "type(contract Enum)" - } - }, - "id": 809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "489:14:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 810, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "489:19:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "src": "476:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "id": 825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 821, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "586:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 822, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "599:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", - "typeString": "type(contract Enum)" - } - }, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "599:14:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 824, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "DelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "599:27:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "src": "586:40:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 850, - "nodeType": "Block", - "src": "701:154:3", - "statements": [ - { - "assignments": [ - 835 - ], - "declarations": [ - { - "constant": false, - "id": 835, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "715:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "715:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 839, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 837, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "751:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 836, - "name": "executeCreate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "737:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "737:19:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "715:41:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 840, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "770:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 841, - "name": "newContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "780:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 842, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "795:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "780:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "770:26:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 845, - "nodeType": "ExpressionStatement", - "src": "770:26:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 847, - "name": "newContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "832:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 846, - "name": "ContractCreation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "815:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "815:29:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 849, - "nodeType": "EmitStatement", - "src": "810:34:3" - } - ] - }, - "id": 851, - "nodeType": "IfStatement", - "src": "582:273:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 826, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "640:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 828, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "670:2:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 829, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "674:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 830, - "name": "txGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "680:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 827, - "name": "executeDelegateCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "650:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,bytes memory,uint256) returns (bool)" - } - }, - "id": 831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "650:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "640:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 833, - "nodeType": "ExpressionStatement", - "src": "640:46:3" - } - }, - "id": 852, - "nodeType": "IfStatement", - "src": "472:383:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 812, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "522:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 814, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "544:2:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 815, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 796, - "src": "548:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 816, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "555:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 817, - "name": "txGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "561:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 813, - "name": "executeCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "532:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,uint256) returns (bool)" - } - }, - "id": 818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "532:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "522:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 820, - "nodeType": "ExpressionStatement", - "src": "522:45:3" - } - } - ] - }, - "documentation": null, - "id": 854, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 794, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "330:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 793, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "330:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 796, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "342:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 795, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "342:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 798, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "357:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 797, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "357:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 800, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "369:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 799, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "369:14:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 802, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "395:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 801, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "395:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "329:80:3" - }, - "payable": false, - "returnParameters": { - "id": 806, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 805, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "444:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 804, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "444:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "443:14:3" - }, - "scope": 892, - "src": "313:548:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 868, - "nodeType": "Block", - "src": "994:182:3", - "statements": [ - { - "externalReferences": [ - { - "data": { - "declaration": 860, - "isOffset": false, - "isSlot": false, - "src": "1148:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 860, - "isOffset": false, - "isSlot": false, - "src": "1129:4:3", - "valueSize": 1 - } - }, - { - "success": { - "declaration": 865, - "isOffset": false, - "isSlot": false, - "src": "1091:7:3", - "valueSize": 1 - } - }, - { - "txGas": { - "declaration": 862, - "isOffset": false, - "isSlot": false, - "src": "1107:5:3", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 856, - "isOffset": false, - "isSlot": false, - "src": "1114:2:3", - "valueSize": 1 - } - }, - { - "value": { - "declaration": 858, - "isOffset": false, - "isSlot": false, - "src": "1118:5:3", - "valueSize": 1 - } - } - ], - "id": 867, - "nodeType": "InlineAssembly", - "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1068:108:3" - } - ] - }, - "documentation": null, - "id": 869, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 863, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 856, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 869, - "src": "888:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 855, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "888:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 858, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 869, - "src": "900:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 857, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "900:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 860, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 869, - "src": "915:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 859, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "915:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 862, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 869, - "src": "927:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 861, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "927:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "887:54:3" - }, - "payable": false, - "returnParameters": { - "id": 866, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 865, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 869, - "src": "976:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 864, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "976:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "975:14:3" - }, - "scope": 892, - "src": "867:309:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 881, - "nodeType": "Block", - "src": "1302:183:3", - "statements": [ - { - "externalReferences": [ - { - "data": { - "declaration": 873, - "isOffset": false, - "isSlot": false, - "src": "1457:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 873, - "isOffset": false, - "isSlot": false, - "src": "1438:4:3", - "valueSize": 1 - } - }, - { - "success": { - "declaration": 878, - "isOffset": false, - "isSlot": false, - "src": "1399:7:3", - "valueSize": 1 - } - }, - { - "txGas": { - "declaration": 875, - "isOffset": false, - "isSlot": false, - "src": "1423:5:3", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 871, - "isOffset": false, - "isSlot": false, - "src": "1430:2:3", - "valueSize": 1 - } - } - ], - "id": 880, - "nodeType": "InlineAssembly", - "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1376:109:3" - } - ] - }, - "documentation": null, - "id": 882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeDelegateCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 876, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 871, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1211:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 870, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1211:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 873, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1223:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 872, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1223:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 875, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1235:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 874, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1235:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1210:39:3" - }, - "payable": false, - "returnParameters": { - "id": 879, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 878, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1284:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 877, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1284:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1283:14:3" - }, - "scope": 892, - "src": "1182:303:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 890, - "nodeType": "Block", - "src": "1585:167:3", - "statements": [ - { - "externalReferences": [ - { - "newContract": { - "declaration": 887, - "isOffset": false, - "isSlot": false, - "src": "1682:11:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 884, - "isOffset": false, - "isSlot": false, - "src": "1711:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 884, - "isOffset": false, - "isSlot": false, - "src": "1730:4:3", - "valueSize": 1 - } - } - ], - "id": 889, - "nodeType": "InlineAssembly", - "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "1659:93:3" - } - ] - }, - "documentation": null, - "id": 891, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeCreate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 884, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 891, - "src": "1514:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 883, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1514:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1513:12:3" - }, - "payable": false, - "returnParameters": { - "id": 888, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 887, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 891, - "src": "1560:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 886, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1560:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1559:21:3" - }, - "scope": 892, - "src": "1491:261:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 893, - "src": "214:1540:3" - } - ], - "src": "0:1755:3" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", - "exportedSymbols": { - "Executor": [ - 892 - ] - }, - "id": 893, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 784, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 785, - "nodeType": "ImportDirective", - "scope": 893, - "sourceUnit": 1660, - "src": "24:28:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", - "file": "../common/EtherPaymentFallback.sol", - "id": 786, - "nodeType": "ImportDirective", - "scope": 893, - "sourceUnit": 1667, - "src": "53:44:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 787, - "name": "EtherPaymentFallback", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1666, - "src": "235:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EtherPaymentFallback_$1666", - "typeString": "contract EtherPaymentFallback" - } - }, - "id": 788, - "nodeType": "InheritanceSpecifier", - "src": "235:20:3" - } - ], - "contractDependencies": [ - 1666 - ], - "contractKind": "contract", - "documentation": "@title Executor - A contract that can execute transactions\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 892, - "linearizedBaseContracts": [ - 892, - 1666 - ], - "name": "Executor", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 792, - "name": "ContractCreation", - "nodeType": "EventDefinition", - "parameters": { - "id": 791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 790, - "indexed": false, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 792, - "src": "286:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 789, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "286:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "285:21:3" - }, - "src": "263:44:3" - }, - { - "body": { - "id": 853, - "nodeType": "Block", - "src": "462:399:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 807, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "476:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 808, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "489:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", - "typeString": "type(contract Enum)" - } - }, - "id": 809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "489:14:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 810, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "489:19:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "src": "476:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "id": 825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 821, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "586:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 822, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "599:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", - "typeString": "type(contract Enum)" - } - }, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "599:14:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 824, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "DelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "599:27:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "src": "586:40:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 850, - "nodeType": "Block", - "src": "701:154:3", - "statements": [ - { - "assignments": [ - 835 - ], - "declarations": [ - { - "constant": false, - "id": 835, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "715:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "715:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 839, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 837, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "751:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 836, - "name": "executeCreate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "737:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "737:19:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "715:41:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 840, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "770:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 841, - "name": "newContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "780:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 842, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "795:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "780:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "770:26:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 845, - "nodeType": "ExpressionStatement", - "src": "770:26:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 847, - "name": "newContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "832:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 846, - "name": "ContractCreation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "815:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "815:29:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 849, - "nodeType": "EmitStatement", - "src": "810:34:3" - } - ] - }, - "id": 851, - "nodeType": "IfStatement", - "src": "582:273:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 826, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "640:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 828, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "670:2:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 829, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "674:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 830, - "name": "txGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "680:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 827, - "name": "executeDelegateCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "650:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,bytes memory,uint256) returns (bool)" - } - }, - "id": 831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "650:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "640:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 833, - "nodeType": "ExpressionStatement", - "src": "640:46:3" - } - }, - "id": 852, - "nodeType": "IfStatement", - "src": "472:383:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 812, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "522:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 814, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "544:2:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 815, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 796, - "src": "548:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 816, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 798, - "src": "555:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 817, - "name": "txGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "561:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 813, - "name": "executeCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "532:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,uint256) returns (bool)" - } - }, - "id": 818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "532:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "522:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 820, - "nodeType": "ExpressionStatement", - "src": "522:45:3" - } - } - ] - }, - "documentation": null, - "id": 854, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 794, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "330:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 793, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "330:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 796, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "342:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 795, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "342:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 798, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "357:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 797, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "357:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 800, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "369:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 799, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "369:14:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 802, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "395:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 801, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "395:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "329:80:3" - }, - "payable": false, - "returnParameters": { - "id": 806, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 805, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "444:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 804, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "444:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "443:14:3" - }, - "scope": 892, - "src": "313:548:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 868, - "nodeType": "Block", - "src": "994:182:3", - "statements": [ - { - "externalReferences": [ - { - "data": { - "declaration": 860, - "isOffset": false, - "isSlot": false, - "src": "1148:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 860, - "isOffset": false, - "isSlot": false, - "src": "1129:4:3", - "valueSize": 1 - } - }, - { - "success": { - "declaration": 865, - "isOffset": false, - "isSlot": false, - "src": "1091:7:3", - "valueSize": 1 - } - }, - { - "txGas": { - "declaration": 862, - "isOffset": false, - "isSlot": false, - "src": "1107:5:3", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 856, - "isOffset": false, - "isSlot": false, - "src": "1114:2:3", - "valueSize": 1 - } - }, - { - "value": { - "declaration": 858, - "isOffset": false, - "isSlot": false, - "src": "1118:5:3", - "valueSize": 1 - } - } - ], - "id": 867, - "nodeType": "InlineAssembly", - "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1068:108:3" - } - ] - }, - "documentation": null, - "id": 869, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 863, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 856, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 869, - "src": "888:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 855, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "888:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 858, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 869, - "src": "900:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 857, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "900:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 860, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 869, - "src": "915:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 859, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "915:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 862, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 869, - "src": "927:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 861, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "927:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "887:54:3" - }, - "payable": false, - "returnParameters": { - "id": 866, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 865, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 869, - "src": "976:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 864, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "976:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "975:14:3" - }, - "scope": 892, - "src": "867:309:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 881, - "nodeType": "Block", - "src": "1302:183:3", - "statements": [ - { - "externalReferences": [ - { - "data": { - "declaration": 873, - "isOffset": false, - "isSlot": false, - "src": "1457:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 873, - "isOffset": false, - "isSlot": false, - "src": "1438:4:3", - "valueSize": 1 - } - }, - { - "success": { - "declaration": 878, - "isOffset": false, - "isSlot": false, - "src": "1399:7:3", - "valueSize": 1 - } - }, - { - "txGas": { - "declaration": 875, - "isOffset": false, - "isSlot": false, - "src": "1423:5:3", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 871, - "isOffset": false, - "isSlot": false, - "src": "1430:2:3", - "valueSize": 1 - } - } - ], - "id": 880, - "nodeType": "InlineAssembly", - "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1376:109:3" - } - ] - }, - "documentation": null, - "id": 882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeDelegateCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 876, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 871, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1211:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 870, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1211:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 873, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1223:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 872, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1223:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 875, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1235:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 874, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1235:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1210:39:3" - }, - "payable": false, - "returnParameters": { - "id": 879, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 878, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 882, - "src": "1284:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 877, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1284:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1283:14:3" - }, - "scope": 892, - "src": "1182:303:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 890, - "nodeType": "Block", - "src": "1585:167:3", - "statements": [ - { - "externalReferences": [ - { - "newContract": { - "declaration": 887, - "isOffset": false, - "isSlot": false, - "src": "1682:11:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 884, - "isOffset": false, - "isSlot": false, - "src": "1711:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 884, - "isOffset": false, - "isSlot": false, - "src": "1730:4:3", - "valueSize": 1 - } - } - ], - "id": 889, - "nodeType": "InlineAssembly", - "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "1659:93:3" - } - ] - }, - "documentation": null, - "id": 891, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeCreate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 884, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 891, - "src": "1514:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 883, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1514:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1513:12:3" - }, - "payable": false, - "returnParameters": { - "id": 888, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 887, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 891, - "src": "1560:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 886, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1560:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1559:21:3" - }, - "scope": 892, - "src": "1491:261:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 893, - "src": "214:1540:3" - } - ], - "src": "0:1755:3" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.887Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafe.json b/safe-contracts/build/contracts/GnosisSafe.json deleted file mode 100644 index ed9efd8d..00000000 --- a/safe-contracts/build/contracts/GnosisSafe.json +++ /dev/null @@ -1,20048 +0,0 @@ -{ - "contractName": "GnosisSafe", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "DOMAIN_SEPARATOR_TYPEHASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModule", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "signedMessages", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "bytes32" - } - ], - "name": "approvedHashes", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - } - ], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_MODULES", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_OWNERS", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nonce", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getModules", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SAFE_MSG_TYPEHASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SAFE_TX_TYPEHASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevModule", - "type": "address" - }, - { - "name": "module", - "type": "address" - } - ], - "name": "disableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "oldOwner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" - } - ], - "name": "swapOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getThreshold", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "domainSeparator", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "txHash", - "type": "bytes32" - } - ], - "name": "ExecutionFailed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - } - ], - "name": "AddedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - } - ], - "name": "RemovedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "threshold", - "type": "uint256" - } - ], - "name": "ChangedThreshold", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "module", - "type": "address" - } - ], - "name": "EnabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "module", - "type": "address" - } - ], - "name": "DisabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "newContract", - "type": "address" - } - ], - "name": "ContractCreation", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_owners", - "type": "address[]" - }, - { - "name": "_threshold", - "type": "uint256" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "safeTxGas", - "type": "uint256" - }, - { - "name": "dataGas", - "type": "uint256" - }, - { - "name": "gasPrice", - "type": "uint256" - }, - { - "name": "gasToken", - "type": "address" - }, - { - "name": "refundReceiver", - "type": "address" - }, - { - "name": "signatures", - "type": "bytes" - } - ], - "name": "execTransaction", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - } - ], - "name": "requiredTxGas", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "hashToApprove", - "type": "bytes32" - } - ], - "name": "approveHash", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_data", - "type": "bytes" - } - ], - "name": "signMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_data", - "type": "bytes" - }, - { - "name": "_signature", - "type": "bytes" - } - ], - "name": "isValidSignature", - "outputs": [ - { - "name": "isValid", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "message", - "type": "bytes" - } - ], - "name": "getMessageHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "safeTxGas", - "type": "uint256" - }, - { - "name": "dataGas", - "type": "uint256" - }, - { - "name": "gasPrice", - "type": "uint256" - }, - { - "name": "gasToken", - "type": "address" - }, - { - "name": "refundReceiver", - "type": "address" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "encodeTransactionData", - "outputs": [ - { - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "safeTxGas", - "type": "uint256" - }, - { - "name": "dataGas", - "type": "uint256" - }, - { - "name": "gasPrice", - "type": "uint256" - }, - { - "name": "gasToken", - "type": "address" - }, - { - "name": "refundReceiver", - "type": "address" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getTransactionHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506154e4806100206000396000f300608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a1028c4146101985780630d582f131461021d5780630ec78d9e1461026a5780631db61b541461034057806320c13b0b146103735780632f54bf6e1461043a578063468721a7146104955780635ae6bd371461054d578063610b592514610592578063694e80c3146105d55780636a761202146106025780637d8329741461075e5780637de7edef146107c357806385a5affe1461080657806385e332cd1461086f5780638cff6355146108c6578063a0e67e2b1461091d578063a3f4df7e14610989578063affed0e014610a19578063b2494df314610a44578063c0856ffc14610ab0578063c4ca3a9c14610ae3578063ccafc38714610b97578063d4d9bdcd14610bca578063d8d11f7814610bfb578063e009cfde14610d1f578063e318b52b14610d82578063e75235b814610e05578063e86637db14610e30578063f698da2514610fb1578063f8dc5dd914610fe4578063ffa1ad7414611051575b005b3480156101a457600080fd5b506101ff600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506110e1565b60405180826000191660001916815260200191505060405180910390f35b34801561022957600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611387565b005b34801561027657600080fd5b5061033e6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506117f0565b005b34801561034c57600080fd5b5061035561196e565b60405180826000191660001916815260200191505060405180910390f35b34801561037f57600080fd5b50610420600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611995565b604051808215151515815260200191505060405180910390f35b34801561044657600080fd5b5061047b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119eb565b604051808215151515815260200191505060405180910390f35b3480156104a157600080fd5b50610533600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611a6d565b604051808215151515815260200191505060405180910390f35b34801561055957600080fd5b5061057c6004803603810190808035600019169060200190929190505050611b99565b6040518082815260200191505060405180910390f35b34801561059e57600080fd5b506105d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bb1565b005b3480156105e157600080fd5b5061060060048036038101908080359060200190929190505050611ff2565b005b34801561060e57600080fd5b50610744600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061223d565b604051808215151515815260200191505060405180910390f35b34801561076a57600080fd5b506107ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291905050506124e8565b6040518082815260200191505060405180910390f35b3480156107cf57600080fd5b50610804600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061250d565b005b34801561081257600080fd5b5061086d600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506126ce565b005b34801561087b57600080fd5b506108846127c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108d257600080fd5b506108db6127c8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561092957600080fd5b506109326127cd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561097557808201518184015260208101905061095a565b505050509050019250505060405180910390f35b34801561099557600080fd5b5061099e612968565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109de5780820151818401526020810190506109c3565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a2557600080fd5b50610a2e6129a1565b6040518082815260200191505060405180910390f35b348015610a5057600080fd5b50610a596129a7565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610a9c578082015181840152602081019050610a81565b505050509050019250505060405180910390f35b348015610abc57600080fd5b50610ac5612c4e565b60405180826000191660001916815260200191505060405180910390f35b348015610aef57600080fd5b50610b81600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050612c75565b6040518082815260200191505060405180910390f35b348015610ba357600080fd5b50610bac612e24565b60405180826000191660001916815260200191505060405180910390f35b348015610bd657600080fd5b50610bf96004803603810190808035600019169060200190929190505050612e4b565b005b348015610c0757600080fd5b50610d01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f9a565b60405180826000191660001916815260200191505060405180910390f35b348015610d2b57600080fd5b50610d80600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613020565b005b348015610d8e57600080fd5b50610e03600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061349c565b005b348015610e1157600080fd5b50610e1a613baf565b6040518082815260200191505060405180910390f35b348015610e3c57600080fd5b50610f36600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613bb9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610f76578082015181840152602081019050610f5b565b50505050905090810190601f168015610fa35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610fbd57600080fd5b50610fc6613ee1565b60405180826000191660001916815260200191505060405180910390f35b348015610ff057600080fd5b5061104f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613ee7565b005b34801561105d57600080fd5b5061106661442f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156110a657808201518184015260208101905061108b565b50505050905090810190601f1680156110d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000807f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca600102836040518082805190602001908083835b60208310151561113e5780518252602082019150602081019050602083039250611119565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206040516020018083600019166000191681526020018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156111d657805182526020820191506020810190506020830392506111b1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b602083101515611352578051825260208201915060208101905060208303925061132d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156114a45750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806004541415156117ec576117eb81611ff2565b5b5050565b600060010260065460001916141515611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570617261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156119255780518252602082019150602081019050602083039250611900565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206006816000191690555061196884848484614468565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b6000806119a1846110e1565b90506000835114156119d457600060076000836000191660001916815260200190815260200160002054141591506119e4565b6119e18185856000614482565b91505b5092915050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611b82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611b8f858585855a614938565b9050949350505050565b60076020528060005260406000206000915090505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611cce5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b600354811115151561215b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156121fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b60008060605a91506122598d8d8d8d8d8d8d8d8d600554613bb9565b90506122ca816040518082805190602001908083835b602083101515612294578051825260208201915060208101905060208303925061226f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902082866001614482565b151561233e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c6964207369676e6174757265732070726f7669646564000000000081525060200191505060405180910390fd5b600560008154809291906001019190505550885a101515156123ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6124168d8d8d8d60008e148015612405575060008c145b61240f578d612411565b5a5b614938565b92508215156124c1577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c816040518082805190602001908083835b6020831015156124765780518252602082019150602081019050602083039250612451565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405180826000191660001916815260200191505060405180910390a15b60008711156124d8576124d78289898989614a35565b5b50509a9950505050505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561268b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600760006127a6846110e1565b600019166000191681526020019081526020016000208190555050565b600181565b600181565b6060806000806003546040519080825280602002602001820160405280156128045781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561295f578083838151811015156128b457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818060010192505061286f565b82935050505090565b6040805190810160405280600b81526020017f476e6f736973205361666500000000000000000000000000000000000000000081525081565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612abb57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612a16565b82604051908082528060200260200182016040528015612aea5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612c4557818184815181101515612b9a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612b55565b80935050505090565b7f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60010281565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a9150612d53878787875a614938565b1515612d5e57600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612de9578082015181840152602081019050612dce565b50505050905090810190601f168015612e165780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b7f14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b2060010281565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612f39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f6e6c79206f776e6572732063616e20617070726f766520612068617368000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000208190555050565b6000612fae8b8b8b8b8b8b8b8b8b8b613bb9565b6040518082805190602001908083835b602083101515612fe35780518252602082019150602081019050602083039250612fbe565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509a9950505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561313d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156131b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156132d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156135b95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561362d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561371a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561376e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156137e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561390a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600454905090565b606060007f14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b206001028c8c8c6040518082805190602001908083835b602083101515613c195780518252602082019150602081019050602083039250613bf4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208c8c8c8c8c8c8c604051602001808c600019166000191681526020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a81526020018960001916600019168152602001886002811115613cb457fe5b60ff1681526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b5050505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515613d895780518252602082019150602081019050602083039250613d64565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040529150509a9950505050505050505050565b60065481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613fb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016003540310151515614053576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156140a75750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561411b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614243576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414151561442a5761442981611ff2565b5b505050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6144728484614c37565b61447c82826150f7565b50505050565b600080600080600080600060606041600454028a5110156144a65760009750614929565b60009650600091505b600454821015614924576144c38a8361532e565b80955081965082975050505060008560ff16141561467a57836001900495506020838b010190508573ffffffffffffffffffffffffffffffffffffffff166320c13b0b8c836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561457757808201518184015260208101905061455c565b50505050905090810190601f1680156145a45780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156145dd5780820151818401526020810190506145c2565b50505050905090810190601f16801561460a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561462b57600080fd5b505af115801561463f573d6000803e3d6000fd5b505050506040513d602081101561465557600080fd5b810190808051906020019092919050505015156146755760009750614929565b614856565b60018560ff1614156147d157836001900495508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561472157506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e6000191660001916815260200190815260200160002054145b1561472f5760009750614929565b88801561476857508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156147cc576000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e60001916600019168152602001908152602001600020819055505b614855565b60018c868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015614848573d6000803e3d6000fd5b5050506020604051035195505b5b8673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1611158061490657506000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156149145760009750614929565b85965081806001019250506144af565b600197505b50505050505050949350505050565b6000806000600281111561494857fe5b84600281111561495457fe5b141561496d576149668787878661535d565b9150614a2b565b6001600281111561497a57fe5b84600281111561498657fe5b141561499e57614997878685615376565b9150614a2a565b6149a78561538d565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008084865a890301029150600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614a7b5782614a7d565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614b88578073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515614b83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b614c2e565b614b9384828461539f565b1515614c2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b50505050505050565b600080600080600454141515614cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515614d54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515614df3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015615062578482815181101515614e1357fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015614e735750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515614ee7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614fd4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050614dfc565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561520b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561532a576152b582825a615376565b1515615329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d6000811461549b57602081146154a357600094506154ad565b8294506154ad565b8151158315171594505b5050505093925050505600a165627a7a72305820c970763346c3e3eca7d7279c490fc28fd06dd7888989f01a151084588f520e3d0029", - "deployedBytecode": "0x608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a1028c4146101985780630d582f131461021d5780630ec78d9e1461026a5780631db61b541461034057806320c13b0b146103735780632f54bf6e1461043a578063468721a7146104955780635ae6bd371461054d578063610b592514610592578063694e80c3146105d55780636a761202146106025780637d8329741461075e5780637de7edef146107c357806385a5affe1461080657806385e332cd1461086f5780638cff6355146108c6578063a0e67e2b1461091d578063a3f4df7e14610989578063affed0e014610a19578063b2494df314610a44578063c0856ffc14610ab0578063c4ca3a9c14610ae3578063ccafc38714610b97578063d4d9bdcd14610bca578063d8d11f7814610bfb578063e009cfde14610d1f578063e318b52b14610d82578063e75235b814610e05578063e86637db14610e30578063f698da2514610fb1578063f8dc5dd914610fe4578063ffa1ad7414611051575b005b3480156101a457600080fd5b506101ff600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506110e1565b60405180826000191660001916815260200191505060405180910390f35b34801561022957600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611387565b005b34801561027657600080fd5b5061033e6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506117f0565b005b34801561034c57600080fd5b5061035561196e565b60405180826000191660001916815260200191505060405180910390f35b34801561037f57600080fd5b50610420600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611995565b604051808215151515815260200191505060405180910390f35b34801561044657600080fd5b5061047b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119eb565b604051808215151515815260200191505060405180910390f35b3480156104a157600080fd5b50610533600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611a6d565b604051808215151515815260200191505060405180910390f35b34801561055957600080fd5b5061057c6004803603810190808035600019169060200190929190505050611b99565b6040518082815260200191505060405180910390f35b34801561059e57600080fd5b506105d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bb1565b005b3480156105e157600080fd5b5061060060048036038101908080359060200190929190505050611ff2565b005b34801561060e57600080fd5b50610744600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061223d565b604051808215151515815260200191505060405180910390f35b34801561076a57600080fd5b506107ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356000191690602001909291905050506124e8565b6040518082815260200191505060405180910390f35b3480156107cf57600080fd5b50610804600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061250d565b005b34801561081257600080fd5b5061086d600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506126ce565b005b34801561087b57600080fd5b506108846127c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108d257600080fd5b506108db6127c8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561092957600080fd5b506109326127cd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561097557808201518184015260208101905061095a565b505050509050019250505060405180910390f35b34801561099557600080fd5b5061099e612968565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109de5780820151818401526020810190506109c3565b50505050905090810190601f168015610a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a2557600080fd5b50610a2e6129a1565b6040518082815260200191505060405180910390f35b348015610a5057600080fd5b50610a596129a7565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610a9c578082015181840152602081019050610a81565b505050509050019250505060405180910390f35b348015610abc57600080fd5b50610ac5612c4e565b60405180826000191660001916815260200191505060405180910390f35b348015610aef57600080fd5b50610b81600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050612c75565b6040518082815260200191505060405180910390f35b348015610ba357600080fd5b50610bac612e24565b60405180826000191660001916815260200191505060405180910390f35b348015610bd657600080fd5b50610bf96004803603810190808035600019169060200190929190505050612e4b565b005b348015610c0757600080fd5b50610d01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f9a565b60405180826000191660001916815260200191505060405180910390f35b348015610d2b57600080fd5b50610d80600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613020565b005b348015610d8e57600080fd5b50610e03600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061349c565b005b348015610e1157600080fd5b50610e1a613baf565b6040518082815260200191505060405180910390f35b348015610e3c57600080fd5b50610f36600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613bb9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610f76578082015181840152602081019050610f5b565b50505050905090810190601f168015610fa35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610fbd57600080fd5b50610fc6613ee1565b60405180826000191660001916815260200191505060405180910390f35b348015610ff057600080fd5b5061104f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613ee7565b005b34801561105d57600080fd5b5061106661442f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156110a657808201518184015260208101905061108b565b50505050905090810190601f1680156110d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000807f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca600102836040518082805190602001908083835b60208310151561113e5780518252602082019150602081019050602083039250611119565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206040516020018083600019166000191681526020018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156111d657805182526020820191506020810190506020830392506111b1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040526040518082805190602001908083835b602083101515611352578051825260208201915060208101905060208303925061132d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156114a45750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806004541415156117ec576117eb81611ff2565b5b5050565b600060010260065460001916141515611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570617261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749600102306040516020018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156119255780518252602082019150602081019050602083039250611900565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206006816000191690555061196884848484614468565b50505050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960010281565b6000806119a1846110e1565b90506000835114156119d457600060076000836000191660001916815260200190815260200160002054141591506119e4565b6119e18185856000614482565b91505b5092915050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611b82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611b8f858585855a614938565b9050949350505050565b60076020528060005260406000206000915090505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611cce5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b600354811115151561215b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156121fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b60008060605a91506122598d8d8d8d8d8d8d8d8d600554613bb9565b90506122ca816040518082805190602001908083835b602083101515612294578051825260208201915060208101905060208303925061226f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902082866001614482565b151561233e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c6964207369676e6174757265732070726f7669646564000000000081525060200191505060405180910390fd5b600560008154809291906001019190505550885a101515156123ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6124168d8d8d8d60008e148015612405575060008c145b61240f578d612411565b5a5b614938565b92508215156124c1577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c816040518082805190602001908083835b6020831015156124765780518252602082019150602081019050602083039250612451565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405180826000191660001916815260200191505060405180910390a15b60008711156124d8576124d78289898989614a35565b5b50509a9950505050505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561268b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600760006127a6846110e1565b600019166000191681526020019081526020016000208190555050565b600181565b600181565b6060806000806003546040519080825280602002602001820160405280156128045781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561295f578083838151811015156128b457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818060010192505061286f565b82935050505090565b6040805190810160405280600b81526020017f476e6f736973205361666500000000000000000000000000000000000000000081525081565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612abb57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612a16565b82604051908082528060200260200182016040528015612aea5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612c4557818184815181101515612b9a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612b55565b80935050505090565b7f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60010281565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a9150612d53878787875a614938565b1515612d5e57600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612de9578082015181840152602081019050612dce565b50505050905090810190601f168015612e165780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b7f14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b2060010281565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515612f39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f6e6c79206f776e6572732063616e20617070726f766520612068617368000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000208190555050565b6000612fae8b8b8b8b8b8b8b8b8b8b613bb9565b6040518082805190602001908083835b602083101515612fe35780518252602082019150602081019050602083039250612fbe565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509a9950505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561313d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156131b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156132d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156135b95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561362d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561371a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561376e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156137e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561390a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600454905090565b606060007f14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b206001028c8c8c6040518082805190602001908083835b602083101515613c195780518252602082019150602081019050602083039250613bf4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208c8c8c8c8c8c8c604051602001808c600019166000191681526020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a81526020018960001916600019168152602001886002811115613cb457fe5b60ff1681526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b5050505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515613d895780518252602082019150602081019050602083039250613d64565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060197f01000000000000000000000000000000000000000000000000000000000000000260017f0100000000000000000000000000000000000000000000000000000000000000026006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101836000191660001916815260200182600019166000191681526020019450505050506040516020818303038152906040529150509a9950505050505050505050565b60065481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613fb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016003540310151515614053576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156140a75750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561411b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614243576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060045414151561442a5761442981611ff2565b5b505050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6144728484614c37565b61447c82826150f7565b50505050565b600080600080600080600060606041600454028a5110156144a65760009750614929565b60009650600091505b600454821015614924576144c38a8361532e565b80955081965082975050505060008560ff16141561467a57836001900495506020838b010190508573ffffffffffffffffffffffffffffffffffffffff166320c13b0b8c836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561457757808201518184015260208101905061455c565b50505050905090810190601f1680156145a45780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156145dd5780820151818401526020810190506145c2565b50505050905090810190601f16801561460a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561462b57600080fd5b505af115801561463f573d6000803e3d6000fd5b505050506040513d602081101561465557600080fd5b810190808051906020019092919050505015156146755760009750614929565b614856565b60018560ff1614156147d157836001900495508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561472157506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e6000191660001916815260200190815260200160002054145b1561472f5760009750614929565b88801561476857508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156147cc576000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e60001916600019168152602001908152602001600020819055505b614855565b60018c868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015614848573d6000803e3d6000fd5b5050506020604051035195505b5b8673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1611158061490657506000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156149145760009750614929565b85965081806001019250506144af565b600197505b50505050505050949350505050565b6000806000600281111561494857fe5b84600281111561495457fe5b141561496d576149668787878661535d565b9150614a2b565b6001600281111561497a57fe5b84600281111561498657fe5b141561499e57614997878685615376565b9150614a2a565b6149a78561538d565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008084865a890301029150600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614a7b5782614a7d565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614b88578073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515614b83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b614c2e565b614b9384828461539f565b1515614c2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b50505050505050565b600080600080600454141515614cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515614d54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515614df3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015615062578482815181101515614e1357fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015614e735750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515614ee7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515614fd4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050614dfc565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561520b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561532a576152b582825a615376565b1515615329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d6000811461549b57602081146154a357600094506154ad565b8294506154ad565b8151158315171594505b5050505093925050505600a165627a7a72305820c970763346c3e3eca7d7279c490fc28fd06dd7888989f01a151084588f520e3d0029", - "sourceMap": "534:14254:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;534:14254:0;;;;;;;", - "deployedSourceMap": "534:14254:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11898:357;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11898:357:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2225:627:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2198:308:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2198:308:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;820:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;820:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11293:447;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11293:447:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5925:129:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5925:129:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2785:429:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1649:49:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1649:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:495:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:495:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:441:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5357:441:6;;;;;;;;;;;;;;;;;;;;;;;;;;3493:1450:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3493:1450:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1809:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;10831:130:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10831:130:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;419:54:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;6136:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6136:458:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6136:458:6;;;;;;;;;;;;;;;;;646:43:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;646:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;646:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1490:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1490:20:0;;;;;;;;;;;;;;;;;;;;;;;3293:738:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3293:738:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3293:738:5;;;;;;;;;;;;;;;;;1329:110:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1329:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9652:572;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9652:572:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1148:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1148:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10468:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10468:201:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14289:497;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14289:497:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1938:511:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:511:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4345:823:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4345:823:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5804:115:6;;;;;;;;;;;;;;;;;;;;;;;12968:635:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12968:635:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12968:635:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1516:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1516:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3194:817:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3194:817:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;695:40:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;695:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;695:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11898:357;11996:7;12019:23;1373:66;12079:17;;12108:7;12098:18;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12098:18:0;;;;;;;;;;;;;;;;12068:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12068::0;;;12045:82;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12045:82:0;;;;;;;;;;;;;;;;12019:108;;12189:4;12184:10;;12201:1;12196:7;;12205:15;;12222;12167:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12167:71:0;;;12144:104;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12144:104:0;;;;;;;;;;;;;;;;12137:111;;11898:357;;;;:::o;2225:627:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:1:6;2388:5;:10;;;;:38;;;;;469:3;2402:24;;:5;:24;;;;2388:38;2380:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:1;2519:6;:13;2526:5;2519:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2511:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2595:6;:23;469:3;2595:23;;;;;;;;;;;;;;;;;;;;;;;;;2579:6;:13;2586:5;2579:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2654:5;2628:6;:23;469:3;2628:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2669:10;;:12;;;;;;;;;;;;;2696:17;2707:5;2696:17;;;;;;;;;;;;;;;;;;;;;;2794:10;2781:9;;:23;;2777:68;;;2818:27;2834:10;2818:15;:27::i;:::-;2777:68;2225:627;;:::o;2198:308:0:-;2332:1;2313:20;;:15;;:20;;;;2305:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;872:66;2416:25;;2443:4;2405:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2405:43:0;;;2395:54;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2395:54:0;;;;;;;;;;;;;;;;2377:15;:72;;;;;;;2459:40;2469:7;2478:10;2490:2;2494:4;2459:9;:40::i;:::-;2198:308;;;;:::o;820:118::-;872:66;820:118;;;:::o;11293:447::-;11382:12;11410:19;11432:21;11447:5;11432:14;:21::i;:::-;11410:43;;11488:1;11467:10;:17;:22;11463:271;;;11546:1;11515:14;:27;11530:11;11515:27;;;;;;;;;;;;;;;;;;:32;;11505:42;;11463:271;;;11669:54;11685:11;11698:5;11705:10;11717:5;11669:15;:54::i;:::-;11659:64;;11463:271;11293:447;;;;;:::o;5925:129:6:-;6002:4;6046:1;6029:6;:13;6036:5;6029:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;6022:25;;5925:129;;;:::o;2785:429:5:-;2917:12;3025:1;3002:7;:19;3010:10;3002:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2994:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:46;3169:2;3173:5;3180:4;3186:9;3197;3161:7;:46::i;:::-;3151:56;;2785:429;;;;;;:::o;1649:49:0:-;;;;;;;;;;;;;;;;;:::o;1182:495:5:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:5;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1649:21;1663:6;1649:21;;;;;;;;;;;;;;;;;;;;;;1182:495;:::o;5357:441:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:10:6;;5527;:24;;5519:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5675:1;5661:10;:15;;5653:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:10;5727:9;:22;;;;5764:27;5781:9;;5764:27;;;;;;;;;;;;;;;;;;5357:441;:::o;3493:1450:0:-;3815:12;3843:16;3881:23;3862:9;3843:28;;3907:194;3942:2;3946:5;3953:4;3959:9;4002;4013:7;4022:8;4032;4042:14;4086:5;;3907:21;:194::i;:::-;3881:220;;4119:68;4145:10;4135:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4135:21:0;;;;;;;;;;;;;;;;4158:10;4170;4182:4;4119:15;:68::i;:::-;4111:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4280:5;;:7;;;;;;;;;;;;;4318:9;4305;:22;;4297:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4501:92;4509:2;4513:5;4520:4;4526:9;4550:1;4537:9;:14;:31;;;;;4567:1;4555:8;:13;4537:31;:55;;4583:9;4537:55;;;4571:9;4537:55;4501:7;:92::i;:::-;4491:102;;4608:7;4607:8;4603:82;;;4636:38;4662:10;4652:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4652:21:0;;;;;;;;;;;;;;;;4636:38;;;;;;;;;;;;;;;;;;;;;;;;4603:82;4841:1;4830:8;:12;4826:111;;;4858:68;4872:8;4882:7;4891:8;4901;4911:14;4858:13;:68::i;:::-;4826:111;3493:1450;;;;;;;;;;;;;;:::o;1809:69::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;626:248:9:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;10831:130:0:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10953:1:0;10913:14;:37;10928:21;10943:5;10928:14;:21::i;:::-;10913:37;;;;;;;;;;;;;;;;;:41;;;;10831:130;:::o;488:55:5:-;539:3;488:55;:::o;419:54:6:-;469:3;419:54;:::o;6136:458::-;6202:9;6227:22;6321:13;6348:20;6266:10;;6252:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6252:25:6;;;;6227:50;;6337:1;6321:17;;6371:6;:23;469:3;6371:23;;;;;;;;;;;;;;;;;;;;;;;;;6348:46;;6404:162;469:3;6410:31;;:12;:31;;;;6404:162;;;6472:12;6457:5;6463;6457:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6513:6;:20;6520:12;6513:20;;;;;;;;;;;;;;;;;;;;;;;;;6498:35;;6547:8;;;;;;;6404:162;;;6582:5;6575:12;;6136:458;;;;:::o;646:43:0:-;;;;;;;;;;;;;;;;;;;;:::o;1490:20::-;;;;:::o;3293:738:5:-;3360:9;3419:19;3452:21;3652:22;3441:1;3419:23;;3476:7;:25;539:3;3476:25;;;;;;;;;;;;;;;;;;;;;;;;;3452:49;;3511:132;539:3;3517:33;;:13;:33;;;;3511:132;;;3582:7;:22;3590:13;3582:22;;;;;;;;;;;;;;;;;;;;;;;;;3566:38;;3618:14;;;;;;;3511:132;;;3691:11;3677:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3677:26:5;;;;3652:51;;3761:1;3747:15;;3788:7;:25;539:3;3788:25;;;;;;;;;;;;;;;;;;;;;;;;;3772:41;;3823:180;539:3;3829:33;;:13;:33;;;;3823:180;;;3899:13;3878:5;3884:11;3878:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3942:7;:22;3950:13;3942:22;;;;;;;;;;;;;;;;;;;;;;;;;3926:38;;3978:14;;;;;;;3823:180;;;4019:5;4012:12;;3293:738;;;;:::o;1329:110:0:-;1373:66;1329:110;;;:::o;9652:572::-;9791:7;9814:16;10053:19;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9833:9:0;9814:28;;9996:46;10004:2;10008:5;10015:4;10021:9;10032;9996:7;:46::i;:::-;9988:55;;;;;;;;10086:9;10075:8;:20;10053:42;;10203:11;10186:29;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10186:29:0;;;10172:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10172:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1148:109;1191:66;1148:109;;;:::o;10468:201::-;10571:1;10549:6;:18;10556:10;10549:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;10541:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10661:1;10617:14;:26;10632:10;10617:26;;;;;;;;;;;;;;;:41;10644:13;10617:41;;;;;;;;;;;;;;;;;:45;;;;10468:201;:::o;14289:497::-;14625:7;14665:113;14687:2;14691:5;14698:4;14704:9;14715;14726:7;14735:8;14745;14755:14;14771:6;14665:21;:113::i;:::-;14655:124;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;14655:124:0;;;;;;;;;;;;;;;;14648:131;;14289:497;;;;;;;;;;;;:::o;1938:511:5:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2152:1:5;2141:6;2133:20;;;;:59;;;;;539:3;2157:35;;2165:6;2157:35;;;;2133:59;2125:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:6;2246:38;;:7;:19;2254:10;2246:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2238:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2361:7;:15;2369:6;2361:15;;;;;;;;;;;;;;;;;;;;;;;;;2339:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2404:1;2386:7;:15;2394:6;2386:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2420:22;2435:6;2420:22;;;;;;;;;;;;;;;;;;;;;;1938:511;;:::o;4345:823:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4528:1:6;4516:8;:13;;;;:44;;;;;469:3;4533:27;;:8;:27;;;;4516:44;4508:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4673:1;4653:6;:16;4660:8;4653:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4645:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4819:1;4807:8;:13;;;;:44;;;;;469:3;4824:27;;:8;:27;;;;4807:44;4799:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4925:8;4904:29;;:6;:17;4911:9;4904:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4896:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5005:6;:16;5012:8;5005:16;;;;;;;;;;;;;;;;;;;;;;;;;4986:6;:16;4993:8;4986:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5051:8;5031:6;:17;5038:9;5031:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5088:1;5069:6;:16;5076:8;5069:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;5104:22;5117:8;5104:22;;;;;;;;;;;;;;;;;;;;;;5141:20;5152:8;5141:20;;;;;;;;;;;;;;;;;;;;;;4345:823;;;:::o;5804:115::-;5873:7;5903:9;;5896:16;;5804:115;:::o;12968:635:0:-;13307:5;13328:18;1191:66;13383:16;;13401:2;13405:5;13422:4;13412:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13412:15:0;;;;;;;;;;;;;;;;13429:9;13440;13451:7;13460:8;13470;13480:14;13496:6;13372:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13372:131:0;;;13349:164;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13349:164:0;;;;;;;;;;;;;;;;13328:185;;13552:4;13547:10;;13564:1;13559:7;;13568:15;;13585:10;13530:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13530:66:0;;;13523:73;;12968:635;;;;;;;;;;;;;:::o;1516:30::-;;;;:::o;3194:817:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:10:6;3415:1;3402:10;;:14;:28;;3394:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3595:1;3586:5;:10;;;;:38;;;;;469:3;3600:24;;:5;:24;;;;3586:38;3578:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3698:5;3677:26;;:6;:17;3684:9;3677:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3776:6;:13;3783:5;3776:13;;;;;;;;;;;;;;;;;;;;;;;;;3756:6;:17;3763:9;3756:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3815:1;3799:6;:13;3806:5;3799:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3826:10;;:12;;;;;;;;;;;;;;3853:19;3866:5;3853:19;;;;;;;;;;;;;;;;;;;;;;3953:10;3940:9;;:23;;3936:68;;;3977:27;3993:10;3977:15;:27::i;:::-;3936:68;3194:817;;;:::o;695:40:0:-;;;;;;;;;;;;;;;;;;;;:::o;740:309:2:-;853:32;865:7;874:10;853:11;:32::i;:::-;1020:22;1033:2;1037:4;1020:12;:22::i;:::-;740:309;;;;:::o;6280:2461:0:-;6405:4;6630:17;6670:20;6700:7;6717:9;6736;6755;7104:30;6528:2;6516:9;;:14;6496:10;:17;:34;6492:77;;;6553:5;6546:12;;;;6492:77;6658:1;6630:30;;6783:1;6779:5;;6774:1940;6790:9;;6786:1;:13;6774:1940;;;6832:29;6847:10;6859:1;6832:14;:29::i;:::-;6820:41;;;;;;;;;;;;6941:1;6936;:6;;;6932:1616;;;7084:1;7076:10;;;7061:25;;7439:4;7435:1;7423:10;7419:18;7415:29;7394:50;;7504:12;7484:50;;;7535:4;7541:17;7484:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7484:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7484:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7484:75:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7484:75:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7484:75:0;;;;;;;;;;;;;;;;7483:76;7479:135;;;7590:5;7583:12;;;;7479:135;6932:1616;;;7696:1;7691;:6;;;7687:861;;;7835:1;7827:10;;;7812:25;;8018:12;8004:26;;:10;:26;;;;:73;;;;;8076:1;8034:14;:28;8049:12;8034:28;;;;;;;;;;;;;;;:38;8063:8;8034:38;;;;;;;;;;;;;;;;;;:43;8004:73;8000:132;;;8108:5;8101:12;;;;8000:132;8253:11;:41;;;;;8282:12;8268:26;;:10;:26;;;;8253:41;8249:130;;;8359:1;8318:14;:28;8333:12;8318:28;;;;;;;;;;;;;;;:38;8347:8;8318:38;;;;;;;;;;;;;;;;;:42;;;;8249:130;7687:861;;;8505:28;8515:8;8525:1;8528;8531;8505:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8505:28:0;;;;;;;;8490:43;;7687:861;6932:1616;8581:9;8565:25;;:12;:25;;;;:54;;;;8618:1;8594:6;:20;8601:12;8594:20;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;8565:54;8561:105;;;8646:5;8639:12;;;;8561:105;8691:12;8679:24;;6801:3;;;;;;;6774:1940;;;8730:4;8723:11;;6280:2461;;;;;;;;;;;;;;:::o;313:548:3:-;444:12;715:19;489;476:32;;;;;;;;:9;:32;;;;;;;;;472:383;;;532:35;544:2;548:5;555:4;561:5;532:11;:35::i;:::-;522:45;;472:383;;;599:27;586:40;;;;;;;;:9;:40;;;;;;;;;582:273;;;650:36;670:2;674:4;680:5;650:19;:36::i;:::-;640:46;;582:273;;;737:19;751:4;737:13;:19::i;:::-;715:41;;795:1;780:11;:16;;;;770:26;;815:29;832:11;815:29;;;;;;;;;;;;;;;;;;;;;;582:273;472:383;313:548;;;;;;;;:::o;4949:715:0:-;5142:14;5271:16;5195:8;5184:7;5171:9;5161:7;:19;5160:31;5159:44;5142:61;;5316:1;5290:28;;:14;:28;;;:57;;5333:14;5290:57;;;5321:9;5290:57;5271:76;;5381:1;5361:22;;:8;:22;;;5357:301;;;5468:8;:13;;:21;5482:6;5468:21;;;;;;;;;;;;;;;;;;;;;;;5460:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:301;;;5567:41;5581:8;5591;5601:6;5567:13;:41::i;:::-;5559:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:301;4949:715;;;;;;;:::o;775:1210:6:-;1381:20;1434:9;1533:13;1011:1;998:9;;:14;990:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1154:7;:14;1140:10;:28;;1132:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1292:1;1278:10;:15;;1270:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;469:3;1381:38;;1446:1;1434:13;;1429:433;1453:7;:14;1449:1;:18;1429:433;;;1549:7;1557:1;1549:10;;;;;;;;;;;;;;;;;;1533:26;;1590:1;1581:5;:10;;;;:38;;;;;469:3;1595:24;;:5;:24;;;;1581:38;1573:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1737:1;1720:6;:13;1727:5;1720:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1712:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1812:5;1789:6;:20;1796:12;1789:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1846:5;1831:20;;1469:3;;;;;;;1429:433;;;469:3;1871:6;:20;1878:12;1871:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1932:7;:14;1919:10;:27;;;;1968:10;1956:9;:22;;;;775:1210;;;;;:::o;606:409:5:-;720:1;691:7;:25;539:3;691:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;683:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:3;773:7;:25;539:3;773:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;837:1;831:2;:7;;;;827:181;;;932:40;952:2;956:4;962:9;932:19;:40::i;:::-;924:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:181;606:409;;:::o;1002:914:12:-;1104:7;1113:9;1124;1424:3;1418:4;1414:14;1486:4;1472:12;1468:23;1456:10;1452:40;1446:47;1441:52;;1551:4;1537:12;1533:23;1521:10;1517:40;1511:47;1506:52;;1895:4;1886;1872:12;1868:23;1856:10;1852:40;1846:47;1842:58;1837:63;;1380:530;;;;;;:::o;867:309:3:-;976:12;1158:1;1155;1148:4;1142:11;1135:4;1129;1125:15;1118:5;1114:2;1107:5;1102:58;1091:69;;1077:93;;;;;;:::o;1182:303::-;1284:12;1467:1;1464;1457:4;1451:11;1444:4;1438;1434:15;1430:2;1423:5;1410:59;1399:70;;1385:94;;;;;:::o;1491:261::-;1560:19;1730:4;1724:11;1717:4;1711;1707:15;1704:1;1697:39;1682:54;;1668:78;;;:::o;430:752:10:-;568:16;600:17;673:8;683:6;620:70;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;620:70:10;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;620:70:10;600:90;;867:1;864;857:4;851:11;844:4;838;834:15;831:1;824:5;816;811:3;807:15;802:67;899:4;893:11;940:14;937:1;932:3;917:38;975:14;1008:1;1003:33;;;;1054:4;1049:76;;;;1163:1;1148:16;;968:198;;1003:33;1027:7;1012:22;;1003:33;;1049:76;1116:3;1110:10;1103:18;1093:7;1086:15;1083:39;1076:47;1061:62;;968:198;;773:403;;;;;;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./base/BaseSafe.sol\";\nimport \"./common/MasterCopy.sol\";\nimport \"./common/SignatureDecoder.sol\";\nimport \"./common/SecuredTokenTransfer.sol\";\nimport \"./interfaces/ISignatureValidator.sol\";\n\n/// @title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n/// @author Stefan George - \n/// @author Richard Meissner - \n/// @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment\ncontract GnosisSafe is MasterCopy, BaseSafe, SignatureDecoder, SecuredTokenTransfer, ISignatureValidator {\n\n string public constant NAME = \"Gnosis Safe\";\n string public constant VERSION = \"0.0.2\";\n\n //keccak256(\n // \"EIP712Domain(address verifyingContract)\"\n //);\n bytes32 public constant DOMAIN_SEPARATOR_TYPEHASH = 0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749;\n\n //keccak256(\n // \"SafeTx(address to,uint256 value,bytes data,uint8 operation,uint256 safeTxGas,uint256 dataGas,uint256 gasPrice,address gasToken,address refundReceiver,uint256 nonce)\"\n //);\n bytes32 public constant SAFE_TX_TYPEHASH = 0x14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b20;\n\n //keccak256(\n // \"SafeMessage(bytes message)\"\n //);\n bytes32 public constant SAFE_MSG_TYPEHASH = 0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca;\n\n event ExecutionFailed(bytes32 txHash);\n\n uint256 public nonce;\n bytes32 public domainSeparator;\n // Mapping to keep track of all message hashes that have been approve by ALL REQUIRED owners\n mapping(bytes32 => uint256) public signedMessages;\n // Mapping to keep track of all hashes (message or transaction) that have been approve by ANY owners\n mapping(address => mapping(bytes32 => uint256)) public approvedHashes;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n /// @param to Contract address for optional delegate call.\n /// @param data Data payload for optional delegate call.\n function setup(address[] _owners, uint256 _threshold, address to, bytes data)\n public\n {\n require(domainSeparator == 0, \"Domain Separator already set!\");\n domainSeparator = keccak256(abi.encode(DOMAIN_SEPARATOR_TYPEHASH, this));\n setupSafe(_owners, _threshold, to, data);\n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n /// Note: The fees are always transfered, even if the user transaction fails.\n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @param safeTxGas Gas that should be used for the Safe transaction.\n /// @param dataGas Gas costs for data used to trigger the safe transaction and to pay the payment transfer\n /// @param gasPrice Gas price that should be used for the payment calculation.\n /// @param gasToken Token address (or 0 if ETH) that is used for the payment.\n /// @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n /// @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n function execTransaction(\n address to,\n uint256 value,\n bytes data,\n Enum.Operation operation,\n uint256 safeTxGas,\n uint256 dataGas,\n uint256 gasPrice,\n address gasToken,\n address refundReceiver,\n bytes signatures\n )\n public\n returns (bool success)\n {\n uint256 startGas = gasleft();\n bytes memory txHashData = encodeTransactionData(\n to, value, data, operation, // Transaction info\n safeTxGas, dataGas, gasPrice, gasToken, refundReceiver, // Payment info\n nonce\n );\n require(checkSignatures(keccak256(txHashData), txHashData, signatures, true), \"Invalid signatures provided\");\n // Increase nonce and execute transaction.\n nonce++;\n require(gasleft() >= safeTxGas, \"Not enough gas to execute safe transaction\");\n // If no safeTxGas has been set and the gasPrice is 0 we assume that all available gas can be used\n success = execute(to, value, data, operation, safeTxGas == 0 && gasPrice == 0 ? gasleft() : safeTxGas);\n if (!success) {\n emit ExecutionFailed(keccak256(txHashData));\n }\n\n // We transfer the calculated tx costs to the tx.origin to avoid sending it to intermediate contracts that have made calls\n if (gasPrice > 0) {\n handlePayment(startGas, dataGas, gasPrice, gasToken, refundReceiver);\n }\n }\n\n function handlePayment(\n uint256 gasUsed,\n uint256 dataGas,\n uint256 gasPrice,\n address gasToken,\n address refundReceiver\n )\n private\n {\n uint256 amount = ((gasUsed - gasleft()) + dataGas) * gasPrice;\n // solium-disable-next-line security/no-tx-origin\n address receiver = refundReceiver == address(0) ? tx.origin : refundReceiver;\n if (gasToken == address(0)) {\n // solium-disable-next-line security/no-send\n require(receiver.send(amount), \"Could not pay gas costs with ether\");\n } else {\n require(transferToken(gasToken, receiver, amount), \"Could not pay gas costs with token\");\n }\n }\n\n /**\n * @dev Should return whether the signature provided is valid for the provided data, hash\n * @param dataHash Hash of the data (could be either a message hash or transaction hash)\n * @param data That should be signed (this is passed to an external validator contract)\n * @param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\n * @param consumeHash Indicates that in case of an approved hash the storage can be freed to save gas\n * @return a bool upon valid or invalid signature with corresponding _data\n */\n function checkSignatures(bytes32 dataHash, bytes data, bytes signatures, bool consumeHash)\n internal\n returns (bool)\n {\n // Check that the provided signature data is not too short\n if (signatures.length < threshold * 65) {\n return false;\n }\n // There cannot be an owner with address 0.\n address lastOwner = address(0);\n address currentOwner;\n uint8 v;\n bytes32 r;\n bytes32 s;\n uint256 i;\n for (i = 0; i < threshold; i++) {\n (v, r, s) = signatureSplit(signatures, i);\n // If v is 0 then it is a contract signature\n if (v == 0) {\n // When handling contract signatures the address of the contract is encoded into r\n currentOwner = address(r);\n bytes memory contractSignature;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n // The signature data for contract signatures is appended to the concatenated signatures and the offset is stored in s\n contractSignature := add(add(signatures, s), 0x20)\n }\n if (!ISignatureValidator(currentOwner).isValidSignature(data, contractSignature)) {\n return false;\n }\n // If v is 1 then it is an approved hash\n } else if (v == 1) {\n // When handling approved hashes the address of the approver is encoded into r\n currentOwner = address(r);\n // Hashes are automatically approved by the sender of the message or when they have been pre-approved via a separate transaction\n if (msg.sender != currentOwner && approvedHashes[currentOwner][dataHash] == 0) {\n return false;\n }\n // Hash has been marked for consumption. If this hash was pre-approved free storage\n if (consumeHash && msg.sender != currentOwner) {\n approvedHashes[currentOwner][dataHash] = 0;\n }\n } else {\n // Use ecrecover with the messageHash for EOA signatures\n currentOwner = ecrecover(dataHash, v, r, s);\n }\n if (currentOwner <= lastOwner || owners[currentOwner] == 0) {\n return false;\n }\n lastOwner = currentOwner;\n }\n return true;\n }\n\n /// @dev Allows to estimate a Safe transaction.\n /// This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n /// 1.) The method can only be called from the safe itself\n /// 2.) The response is returned with a revert\n /// When estimating set `from` to the address of the safe.\n /// Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`\n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).\n function requiredTxGas(address to, uint256 value, bytes data, Enum.Operation operation)\n public\n authorized\n returns (uint256)\n {\n uint256 startGas = gasleft();\n // We don't provide an error message here, as we use it to return the estimate\n // solium-disable-next-line error-reason\n require(execute(to, value, data, operation, gasleft()));\n uint256 requiredGas = startGas - gasleft();\n // Convert response to string and return via error message\n revert(string(abi.encodePacked(requiredGas)));\n }\n\n /**\n * @dev Marks a hash as approved. This can be used to validate a hash that is used by a signature.\n * @param hashToApprove The hash that should be marked as approved for signatures that are verified by this contract.\n */\n function approveHash(bytes32 hashToApprove)\n public\n {\n require(owners[msg.sender] != 0, \"Only owners can approve a hash\");\n approvedHashes[msg.sender][hashToApprove] = 1;\n }\n\n /**\n * @dev Marks a message as signed\n * @param _data Arbitrary length data that should be marked as signed on the behalf of address(this)\n */\n function signMessage(bytes _data)\n public\n authorized\n {\n signedMessages[getMessageHash(_data)] = 1;\n }\n\n /**\n * @dev Should return whether the signature provided is valid for the provided data\n * @param _data Arbitrary length data signed on the behalf of address(this)\n * @param _signature Signature byte array associated with _data\n * @return a bool upon valid or invalid signature with corresponding _data\n */\n function isValidSignature(bytes _data, bytes _signature)\n public\n returns (bool isValid)\n {\n bytes32 messageHash = getMessageHash(_data);\n if (_signature.length == 0) {\n isValid = signedMessages[messageHash] != 0;\n } else {\n // consumeHash needs to be false, as the state should not be changed\n isValid = checkSignatures(messageHash, _data, _signature, false);\n }\n }\n\n /// @dev Returns hash of a message that can be signed by owners.\n /// @param message Message that should be hashed\n /// @return Message hash.\n function getMessageHash(\n bytes message\n )\n public\n view\n returns (bytes32)\n {\n bytes32 safeMessageHash = keccak256(\n abi.encode(SAFE_MSG_TYPEHASH, keccak256(message))\n );\n return keccak256(\n abi.encodePacked(byte(0x19), byte(1), domainSeparator, safeMessageHash)\n );\n }\n\n /// @dev Returns the bytes that are hashed to be signed by owners.\n /// @param to Destination address.\n /// @param value Ether value.\n /// @param data Data payload.\n /// @param operation Operation type.\n /// @param safeTxGas Fas that should be used for the safe transaction.\n /// @param dataGas Gas costs for data used to trigger the safe transaction.\n /// @param gasPrice Maximum gas price that should be used for this transaction.\n /// @param gasToken Token address (or 0 if ETH) that is used for the payment.\n /// @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n /// @param _nonce Transaction nonce.\n /// @return Transaction hash bytes.\n function encodeTransactionData(\n address to,\n uint256 value,\n bytes data,\n Enum.Operation operation,\n uint256 safeTxGas,\n uint256 dataGas,\n uint256 gasPrice,\n address gasToken,\n address refundReceiver,\n uint256 _nonce\n )\n public\n view\n returns (bytes)\n {\n bytes32 safeTxHash = keccak256(\n abi.encode(SAFE_TX_TYPEHASH, to, value, keccak256(data), operation, safeTxGas, dataGas, gasPrice, gasToken, refundReceiver, _nonce)\n );\n return abi.encodePacked(byte(0x19), byte(1), domainSeparator, safeTxHash);\n }\n\n /// @dev Returns hash to be signed by owners.\n /// @param to Destination address.\n /// @param value Ether value.\n /// @param data Data payload.\n /// @param operation Operation type.\n /// @param safeTxGas Fas that should be used for the safe transaction.\n /// @param dataGas Gas costs for data used to trigger the safe transaction.\n /// @param gasPrice Maximum gas price that should be used for this transaction.\n /// @param gasToken Token address (or 0 if ETH) that is used for the payment.\n /// @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n /// @param _nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(\n address to,\n uint256 value,\n bytes data,\n Enum.Operation operation,\n uint256 safeTxGas,\n uint256 dataGas,\n uint256 gasPrice,\n address gasToken,\n address refundReceiver,\n uint256 _nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(encodeTransactionData(to, value, data, operation, safeTxGas, dataGas, gasPrice, gasToken, refundReceiver, _nonce));\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", - "exportedSymbols": { - "GnosisSafe": [ - 692 - ] - }, - "id": 693, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", - "file": "./base/BaseSafe.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 783, - "src": "24:29:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "file": "./common/MasterCopy.sol", - "id": 3, - "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1694, - "src": "54:33:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "file": "./common/SignatureDecoder.sol", - "id": 4, - "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1792, - "src": "88:39:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "file": "./common/SecuredTokenTransfer.sol", - "id": 5, - "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1719, - "src": "128:43:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", - "file": "./interfaces/ISignatureValidator.sol", - "id": 6, - "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1804, - "src": "172:46:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1693, - "src": "557:10:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$1693", - "typeString": "contract MasterCopy" - } - }, - "id": 8, - "nodeType": "InheritanceSpecifier", - "src": "557:10:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9, - "name": "BaseSafe", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 782, - "src": "569:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BaseSafe_$782", - "typeString": "contract BaseSafe" - } - }, - "id": 10, - "nodeType": "InheritanceSpecifier", - "src": "569:8:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 11, - "name": "SignatureDecoder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1791, - "src": "579:16:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureDecoder_$1791", - "typeString": "contract SignatureDecoder" - } - }, - "id": 12, - "nodeType": "InheritanceSpecifier", - "src": "579:16:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 13, - "name": "SecuredTokenTransfer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1718, - "src": "597:20:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1718", - "typeString": "contract SecuredTokenTransfer" - } - }, - "id": 14, - "nodeType": "InheritanceSpecifier", - "src": "597:20:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 15, - "name": "ISignatureValidator", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1803, - "src": "619:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISignatureValidator_$1803", - "typeString": "contract ISignatureValidator" - } - }, - "id": 16, - "nodeType": "InheritanceSpecifier", - "src": "619:19:0" - } - ], - "contractDependencies": [ - 782, - 892, - 1212, - 1652, - 1666, - 1693, - 1718, - 1735, - 1791, - 1803 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - \n @author Richard Meissner - \n @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment", - "fullyImplemented": true, - "id": 692, - "linearizedBaseContracts": [ - 692, - 1803, - 1718, - 1791, - 782, - 1652, - 1212, - 892, - 1666, - 1693, - 1735 - ], - "name": "GnosisSafe", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 19, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "646:43:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 17, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "646:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "476e6f7369732053616665", - "id": 18, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "676:13:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_72ec6775392f699e8ffd72b7c600556d49bdc746bf22bce93d3ae6019cdaff63", - "typeString": "literal_string \"Gnosis Safe\"" - }, - "value": "Gnosis Safe" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 22, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "695:40:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 20, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "695:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e32", - "id": 21, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "728:7:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" - }, - "value": "0.0.2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 25, - "name": "DOMAIN_SEPARATOR_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "820:118:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 23, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "820:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307830333561666638336438363933376433356233326530346630646463366666343639323930656566326631623639326438613831356338393430346434373439", - "id": 24, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "872:66:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1517718281442037948617199096126532355110765202990829672390711201829802035017_by_1", - "typeString": "int_const 1517...(68 digits omitted)...5017" - }, - "value": "0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 28, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1148:109:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 26, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1148:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307831346434363162633734313233363765393234363337623336336337626632396238663437653266383438363966343432366535363333643861663437623230", - "id": 27, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1191:66:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_9421503099487675527562227662599058764916562750590033657944341861770225548064_by_1", - "typeString": "int_const 9421...(68 digits omitted)...8064" - }, - "value": "0x14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b20" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 31, - "name": "SAFE_MSG_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1329:110:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 29, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1329:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307836306233636266386234613232336436386436343162336236646466396132393865376633333731306366336433613964313134366235613631353066626361", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1373:66:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_43739706848186989041152069077571617734008543096732098246335109361212071148490_by_1", - "typeString": "int_const 4373...(69 digits omitted)...8490" - }, - "value": "0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 35, - "name": "ExecutionFailed", - "nodeType": "EventDefinition", - "parameters": { - "id": 34, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33, - "indexed": false, - "name": "txHash", - "nodeType": "VariableDeclaration", - "scope": 35, - "src": "1468:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 32, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1468:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1467:16:0" - }, - "src": "1446:38:0" - }, - { - "constant": false, - "id": 37, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1490:20:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 36, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1490:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 39, - "name": "domainSeparator", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1516:30:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 38, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1516:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 43, - "name": "signedMessages", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1649:49:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 42, - "keyType": { - "id": 40, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1657:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1649:27:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 41, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1668:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 49, - "name": "approvedHashes", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1809:69:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - }, - "typeName": { - "id": 48, - "keyType": { - "id": 44, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1817:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1809:47:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - }, - "valueType": { - "id": 47, - "keyType": { - "id": 45, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1836:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1828:27:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 46, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1847:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 85, - "nodeType": "Block", - "src": "2295:211:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 64, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 62, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "2313:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 63, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2332:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2313:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "446f6d61696e20536570617261746f7220616c72656164792073657421", - "id": 65, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2335:31:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", - "typeString": "literal_string \"Domain Separator already set!\"" - }, - "value": "Domain Separator already set!" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", - "typeString": "literal_string \"Domain Separator already set!\"" - } - ], - "id": 61, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2305:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 66, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2305:62:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 67, - "nodeType": "ExpressionStatement", - "src": "2305:62:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 76, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 68, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "2377:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 72, - "name": "DOMAIN_SEPARATOR_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "2416:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 73, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4052, - "src": "2443:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$692", - "typeString": "contract GnosisSafe" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_GnosisSafe_$692", - "typeString": "contract GnosisSafe" - } - ], - "expression": { - "argumentTypes": null, - "id": 70, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "2405:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 71, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2405:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 74, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2405:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 69, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "2395:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 75, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2395:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "2377:72:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 77, - "nodeType": "ExpressionStatement", - "src": "2377:72:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 79, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "2469:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 80, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "2478:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 81, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "2490:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 82, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "2494:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 78, - "name": "setupSafe", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 781, - "src": "2459:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address[] memory,uint256,address,bytes memory)" - } - }, - "id": 83, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2459:40:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 84, - "nodeType": "ExpressionStatement", - "src": "2459:40:0" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.", - "id": 86, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 59, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "_owners", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2213:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 50, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2213:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 51, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2213:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 54, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2232:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 53, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2232:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 56, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2252:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 55, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2252:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 58, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2264:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 57, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2264:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2212:63:0" - }, - "payable": false, - "returnParameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [], - "src": "2295:0:0" - }, - "scope": 692, - "src": "2198:308:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 197, - "nodeType": "Block", - "src": "3833:1110:0", - "statements": [ - { - "assignments": [ - 112 - ], - "declarations": [ - { - "constant": false, - "id": 112, - "name": "startGas", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3843:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 111, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3843:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 115, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 113, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "3862:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3862:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3843:28:0" - }, - { - "assignments": [ - 117 - ], - "declarations": [ - { - "constant": false, - "id": 117, - "name": "txHashData", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3881:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 116, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3881:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 130, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 119, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "3942:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 120, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "3946:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 121, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "3953:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 122, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "3959:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 123, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4002:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 124, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "4013:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 125, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4022:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 126, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 102, - "src": "4032:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 127, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 104, - "src": "4042:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 128, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "4086:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 118, - "name": "encodeTransactionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "3907:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)" - } - }, - "id": 129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3907:194:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3881:220:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 134, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4145:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 133, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4135:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4135:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 136, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4158:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 137, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "4170:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4182:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 132, - "name": "checkSignatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "4119:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory,bytes memory,bool) returns (bool)" - } - }, - "id": 139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4119:68:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964207369676e6174757265732070726f7669646564", - "id": 140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4189:29:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_85bcea44c930431ef19052d068cc504a81260341ae6c5ee84bb5a38ec55acf05", - "typeString": "literal_string \"Invalid signatures provided\"" - }, - "value": "Invalid signatures provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_85bcea44c930431ef19052d068cc504a81260341ae6c5ee84bb5a38ec55acf05", - "typeString": "literal_string \"Invalid signatures provided\"" - } - ], - "id": 131, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4111:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4111:108:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 142, - "nodeType": "ExpressionStatement", - "src": "4111:108:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4280:7:0", - "subExpression": { - "argumentTypes": null, - "id": 143, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "4280:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 145, - "nodeType": "ExpressionStatement", - "src": "4280:7:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 147, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "4305:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4305:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 149, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4318:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4305:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", - "id": 151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4329:44:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", - "typeString": "literal_string \"Not enough gas to execute safe transaction\"" - }, - "value": "Not enough gas to execute safe transaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", - "typeString": "literal_string \"Not enough gas to execute safe transaction\"" - } - ], - "id": 146, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4297:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4297:77:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 153, - "nodeType": "ExpressionStatement", - "src": "4297:77:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 154, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "4491:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 156, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "4509:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 157, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "4513:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 158, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "4520:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 159, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "4526:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 160, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4537:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4550:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4537:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 163, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4555:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 164, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4567:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4555:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4537:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 169, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4583:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "4537:55:0", - "trueExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 167, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "4571:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4571:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 155, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "4501:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4501:92:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4491:102:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 173, - "nodeType": "ExpressionStatement", - "src": "4491:102:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4607:8:0", - "subExpression": { - "argumentTypes": null, - "id": 174, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "4608:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 183, - "nodeType": "IfStatement", - "src": "4603:82:0", - "trueBody": { - "id": 182, - "nodeType": "Block", - "src": "4617:68:0", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 178, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4662:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 177, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4652:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4652:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 176, - "name": "ExecutionFailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "4636:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4636:38:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 181, - "nodeType": "EmitStatement", - "src": "4631:43:0" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 184, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4830:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4841:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4830:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 196, - "nodeType": "IfStatement", - "src": "4826:111:0", - "trueBody": { - "id": 195, - "nodeType": "Block", - "src": "4844:93:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 188, - "name": "startGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4872:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 189, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "4882:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 190, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4891:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 191, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 102, - "src": "4901:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 192, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 104, - "src": "4911:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 187, - "name": "handlePayment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 262, - "src": "4858:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$__$", - "typeString": "function (uint256,uint256,uint256,address,address)" - } - }, - "id": 193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4858:68:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 194, - "nodeType": "ExpressionStatement", - "src": "4858:68:0" - } - ] - } - } - ] - }, - "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n Note: The fees are always transfered, even if the user transaction fails.\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param safeTxGas Gas that should be used for the Safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction and to pay the payment transfer\n @param gasPrice Gas price that should be used for the payment calculation.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 198, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 88, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3527:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 87, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3527:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 90, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3547:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 89, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3547:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 92, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3570:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 91, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3570:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 94, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3590:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 93, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "3590:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 96, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3624:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 95, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3624:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 98, - "name": "dataGas", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3651:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 97, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3651:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3676:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 99, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3676:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 102, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3702:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3702:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 104, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3728:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 103, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3728:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 106, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3760:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 105, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3760:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3517:265:0" - }, - "payable": false, - "returnParameters": { - "id": 110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 109, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3815:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 108, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3815:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3814:14:0" - }, - "scope": 692, - "src": "3493:1450:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 261, - "nodeType": "Block", - "src": "5132:532:0", - "statements": [ - { - "assignments": [ - 212 - ], - "declarations": [ - { - "constant": false, - "id": 212, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5142:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5142:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 223, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "gasUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "5161:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 214, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "5171:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5171:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5161:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 217, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5160:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 218, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 202, - "src": "5184:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5160:31:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 220, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5159:33:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 221, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 204, - "src": "5195:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5159:44:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5142:61:0" - }, - { - "assignments": [ - 225 - ], - "declarations": [ - { - "constant": false, - "id": 225, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5271:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 224, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5271:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 235, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 226, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "5290:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5316:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5308:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 229, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5308:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5290:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 233, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "5333:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5290:57:0", - "trueExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 231, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4027, - "src": "5321:2:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5321:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5271:76:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 236, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "5361:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5381:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5373:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5373:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5361:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 259, - "nodeType": "Block", - "src": "5545:113:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 252, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "5581:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 253, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "5591:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 254, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "5601:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 251, - "name": "transferToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1717, - "src": "5567:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5567:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5610:36:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", - "typeString": "literal_string \"Could not pay gas costs with token\"" - }, - "value": "Could not pay gas costs with token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", - "typeString": "literal_string \"Could not pay gas costs with token\"" - } - ], - "id": 250, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "5559:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5559:88:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 258, - "nodeType": "ExpressionStatement", - "src": "5559:88:0" - } - ] - }, - "id": 260, - "nodeType": "IfStatement", - "src": "5357:301:0", - "trueBody": { - "id": 249, - "nodeType": "Block", - "src": "5385:154:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 244, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "5482:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 242, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "5468:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "send", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5468:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) returns (bool)" - } - }, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5468:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5491:36:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", - "typeString": "literal_string \"Could not pay gas costs with ether\"" - }, - "value": "Could not pay gas costs with ether" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", - "typeString": "literal_string \"Could not pay gas costs with ether\"" - } - ], - "id": 241, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "5460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5460:68:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 248, - "nodeType": "ExpressionStatement", - "src": "5460:68:0" - } - ] - } - } - ] - }, - "documentation": null, - "id": 262, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "handlePayment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 209, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 200, - "name": "gasUsed", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4981:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4981:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 202, - "name": "dataGas", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5006:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 201, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5006:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 204, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5031:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 203, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5031:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 206, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5057:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 205, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5057:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 208, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5083:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 207, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5083:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4971:140:0" - }, - "payable": false, - "returnParameters": { - "id": 210, - "nodeType": "ParameterList", - "parameters": [], - "src": "5132:0:0" - }, - "scope": 692, - "src": "4949:715:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 427, - "nodeType": "Block", - "src": "6415:2326:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 275, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "6496:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6496:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 277, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "6516:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3635", - "id": 278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6528:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "65" - }, - "src": "6516:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6496:34:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 284, - "nodeType": "IfStatement", - "src": "6492:77:0", - "trueBody": { - "id": 283, - "nodeType": "Block", - "src": "6532:37:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6553:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 282, - "nodeType": "Return", - "src": "6546:12:0" - } - ] - } - }, - { - "assignments": [ - 286 - ], - "declarations": [ - { - "constant": false, - "id": 286, - "name": "lastOwner", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6630:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 285, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6630:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 290, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 288, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6658:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6650:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6650:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6630:30:0" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 292, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6670:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6670:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 293, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6670:20:0" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 295, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6700:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 294, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "6700:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 296, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6700:7:0" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 298, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6717:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 297, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6717:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 299, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6717:9:0" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 301, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6736:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 300, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6736:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 302, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6736:9:0" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 304, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6755:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6755:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 305, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6755:9:0" - }, - { - "body": { - "id": 423, - "nodeType": "Block", - "src": "6806:1908:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 316, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "6821:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 317, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "6824:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 318, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "6827:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 319, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "6820:9:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 321, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "6847:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 322, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6859:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 320, - "name": "signatureSplit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "6832:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" - } - }, - "id": 323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6832:29:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "src": "6820:41:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 325, - "nodeType": "ExpressionStatement", - "src": "6820:41:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 326, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "6936:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6941:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6936:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 352, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "7691:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7696:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7691:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 403, - "nodeType": "Block", - "src": "8399:149:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 394, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8490:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 396, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "8515:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 397, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "8525:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 398, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "8528:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 399, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "8531:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 395, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4007, - "src": "8505:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8505:28:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8490:43:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 402, - "nodeType": "ExpressionStatement", - "src": "8490:43:0" - } - ] - }, - "id": 404, - "nodeType": "IfStatement", - "src": "7687:861:0", - "trueBody": { - "id": 393, - "nodeType": "Block", - "src": "7699:694:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 355, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "7812:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 357, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "7835:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7827:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7827:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7812:25:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 360, - "nodeType": "ExpressionStatement", - "src": "7812:25:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 361, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "8004:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8004:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 363, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8018:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8004:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 365, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8034:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - } - }, - "id": 367, - "indexExpression": { - "argumentTypes": null, - "id": 366, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8049:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8034:28:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 369, - "indexExpression": { - "argumentTypes": null, - "id": 368, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "8063:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8034:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8076:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8034:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8004:73:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 376, - "nodeType": "IfStatement", - "src": "8000:132:0", - "trueBody": { - "id": 375, - "nodeType": "Block", - "src": "8079:53:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8108:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 374, - "nodeType": "Return", - "src": "8101:12:0" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 377, - "name": "consumeHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "8253:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 378, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "8268:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8268:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 380, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8282:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8268:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8253:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 392, - "nodeType": "IfStatement", - "src": "8249:130:0", - "trueBody": { - "id": 391, - "nodeType": "Block", - "src": "8296:83:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 383, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8318:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - } - }, - "id": 386, - "indexExpression": { - "argumentTypes": null, - "id": 384, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8333:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8318:28:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 387, - "indexExpression": { - "argumentTypes": null, - "id": 385, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "8347:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8318:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8359:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8318:42:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 390, - "nodeType": "ExpressionStatement", - "src": "8318:42:0" - } - ] - } - } - ] - } - }, - "id": 405, - "nodeType": "IfStatement", - "src": "6932:1616:0", - "trueBody": { - "id": 351, - "nodeType": "Block", - "src": "6944:737:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 329, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "7061:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 331, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "7084:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7076:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7076:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7061:25:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 334, - "nodeType": "ExpressionStatement", - "src": "7061:25:0" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 336, - "name": "contractSignature", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "7104:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 335, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7104:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 337, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7104:30:0" - }, - { - "externalReferences": [ - { - "contractSignature": { - "declaration": 336, - "isOffset": false, - "isSlot": false, - "src": "7394:17:0", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 268, - "isOffset": false, - "isSlot": false, - "src": "7423:10:0", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 301, - "isOffset": false, - "isSlot": false, - "src": "7435:1:0", - "valueSize": 1 - } - } - ], - "id": 338, - "nodeType": "InlineAssembly", - "operations": "{\n contractSignature := add(add(signatures, s), 0x20)\n}", - "src": "7224:257:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7483:76:0", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 343, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "7535:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 344, - "name": "contractSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "7541:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 340, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "7504:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 339, - "name": "ISignatureValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "7484:19:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISignatureValidator_$1803_$", - "typeString": "type(contract ISignatureValidator)" - } - }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7484:33:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISignatureValidator_$1803", - "typeString": "contract ISignatureValidator" - } - }, - "id": 342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isValidSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "7484:50:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes memory,bytes memory) external returns (bool)" - } - }, - "id": 345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7484:75:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 350, - "nodeType": "IfStatement", - "src": "7479:135:0", - "trueBody": { - "id": 349, - "nodeType": "Block", - "src": "7561:53:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7590:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 348, - "nodeType": "Return", - "src": "7583:12:0" - } - ] - } - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 406, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8565:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 407, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "8581:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8565:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 409, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "8594:6:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 411, - "indexExpression": { - "argumentTypes": null, - "id": 410, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8601:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8594:20:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8618:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8594:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8565:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 418, - "nodeType": "IfStatement", - "src": "8561:105:0", - "trueBody": { - "id": 417, - "nodeType": "Block", - "src": "8621:45:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8646:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 416, - "nodeType": "Return", - "src": "8639:12:0" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 419, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "8679:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 420, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8691:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8679:24:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 422, - "nodeType": "ExpressionStatement", - "src": "8679:24:0" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 310, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6786:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 311, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "6790:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6786:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 424, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 306, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6779:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6783:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6779:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 309, - "nodeType": "ExpressionStatement", - "src": "6779:5:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6801:3:0", - "subExpression": { - "argumentTypes": null, - "id": 313, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6801:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 315, - "nodeType": "ExpressionStatement", - "src": "6801:3:0" - }, - "nodeType": "ForStatement", - "src": "6774:1940:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8730:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 274, - "id": 426, - "nodeType": "Return", - "src": "8723:11:0" - } - ] - }, - "documentation": "@dev Should return whether the signature provided is valid for the provided data, hash\n@param dataHash Hash of the data (could be either a message hash or transaction hash)\n@param data That should be signed (this is passed to an external validator contract)\n@param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\n@param consumeHash Indicates that in case of an approved hash the storage can be freed to save gas\n@return a bool upon valid or invalid signature with corresponding _data", - "id": 428, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "checkSignatures", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 271, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 264, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6305:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 263, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6305:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 266, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6323:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 265, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6323:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 268, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6335:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 267, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6335:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 270, - "name": "consumeHash", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6353:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 269, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6353:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6304:66:0" - }, - "payable": false, - "returnParameters": { - "id": 274, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 273, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6405:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 272, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6405:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6404:6:0" - }, - "scope": 692, - "src": "6280:2461:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 475, - "nodeType": "Block", - "src": "9804:420:0", - "statements": [ - { - "assignments": [ - 444 - ], - "declarations": [ - { - "constant": false, - "id": 444, - "name": "startGas", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9814:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 443, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9814:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 447, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 445, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "9833:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9833:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9814:28:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 450, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "10004:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 451, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "10008:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 452, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "10015:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 453, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 436, - "src": "10021:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 454, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "10032:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 449, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "9996:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9996:46:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4018, - "src": "9988:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9988:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 458, - "nodeType": "ExpressionStatement", - "src": "9988:55:0" - }, - { - "assignments": [ - 460 - ], - "declarations": [ - { - "constant": false, - "id": 460, - "name": "requiredGas", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "10053:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10053:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 465, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 461, - "name": "startGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 444, - "src": "10075:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 462, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "10086:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10086:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10075:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10053:42:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 470, - "name": "requiredGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 460, - "src": "10203:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 468, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "10186:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10186:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10186:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 467, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10179:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": "string" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10179:37:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - ], - "id": 466, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "10172:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10172:45:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 474, - "nodeType": "ExpressionStatement", - "src": "10172:45:0" - } - ] - }, - "documentation": "@dev Allows to estimate a Safe transaction.\n This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n 1.) The method can only be called from the safe itself\n 2.) The response is returned with a revert\n When estimating set `from` to the address of the safe.\n Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).", - "id": 476, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 439, - "modifierName": { - "argumentTypes": null, - "id": 438, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "9763:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9763:10:0" - } - ], - "name": "requiredTxGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 437, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 430, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9675:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 429, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9675:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 432, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9687:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 431, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9687:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 434, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9702:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 433, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9702:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 436, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9714:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 435, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "9714:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9674:65:0" - }, - "payable": false, - "returnParameters": { - "id": 442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 441, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9791:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9791:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9790:9:0" - }, - "scope": 692, - "src": "9652:572:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 500, - "nodeType": "Block", - "src": "10531:138:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 482, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "10549:6:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 485, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 483, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "10556:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10556:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10549:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10571:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10549:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f6e6c79206f776e6572732063616e20617070726f766520612068617368", - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10574:32:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", - "typeString": "literal_string \"Only owners can approve a hash\"" - }, - "value": "Only owners can approve a hash" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", - "typeString": "literal_string \"Only owners can approve a hash\"" - } - ], - "id": 481, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "10541:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10541:66:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 490, - "nodeType": "ExpressionStatement", - "src": "10541:66:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 491, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "10617:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - } - }, - "id": 495, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 492, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "10632:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10632:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10617:26:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 496, - "indexExpression": { - "argumentTypes": null, - "id": 494, - "name": "hashToApprove", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "10644:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10617:41:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10661:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10617:45:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "10617:45:0" - } - ] - }, - "documentation": "@dev Marks a hash as approved. This can be used to validate a hash that is used by a signature.\n@param hashToApprove The hash that should be marked as approved for signatures that are verified by this contract.", - "id": 501, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 479, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 478, - "name": "hashToApprove", - "nodeType": "VariableDeclaration", - "scope": 501, - "src": "10489:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 477, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10489:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10488:23:0" - }, - "payable": false, - "returnParameters": { - "id": 480, - "nodeType": "ParameterList", - "parameters": [], - "src": "10531:0:0" - }, - "scope": 692, - "src": "10468:201:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 516, - "nodeType": "Block", - "src": "10903:58:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 508, - "name": "signedMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "10913:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 512, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 510, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "10943:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 509, - "name": "getMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "10928:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) view returns (bytes32)" - } - }, - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10928:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10913:37:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 513, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10953:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10913:41:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 515, - "nodeType": "ExpressionStatement", - "src": "10913:41:0" - } - ] - }, - "documentation": "@dev Marks a message as signed\n@param _data Arbitrary length data that should be marked as signed on the behalf of address(this)", - "id": 517, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 506, - "modifierName": { - "argumentTypes": null, - "id": 505, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "10888:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10888:10:0" - } - ], - "name": "signMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 504, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 503, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 517, - "src": "10852:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 502, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10852:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10851:13:0" - }, - "payable": false, - "returnParameters": { - "id": 507, - "nodeType": "ParameterList", - "parameters": [], - "src": "10903:0:0" - }, - "scope": 692, - "src": "10831:130:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 556, - "nodeType": "Block", - "src": "11400:340:0", - "statements": [ - { - "assignments": [ - 527 - ], - "declarations": [ - { - "constant": false, - "id": 527, - "name": "messageHash", - "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11410:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 526, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11410:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 531, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 529, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11447:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 528, - "name": "getMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "11432:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) view returns (bytes32)" - } - }, - "id": 530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11432:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11410:43:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 532, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 521, - "src": "11467:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11467:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11488:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11467:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 554, - "nodeType": "Block", - "src": "11564:170:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 545, - "name": "isValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11659:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 547, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 527, - "src": "11685:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 548, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11698:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 549, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 521, - "src": "11705:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11717:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 546, - "name": "checkSignatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "11669:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory,bytes memory,bool) returns (bool)" - } - }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11669:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11659:64:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 553, - "nodeType": "ExpressionStatement", - "src": "11659:64:0" - } - ] - }, - "id": 555, - "nodeType": "IfStatement", - "src": "11463:271:0", - "trueBody": { - "id": 544, - "nodeType": "Block", - "src": "11491:67:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 536, - "name": "isValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11505:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 537, - "name": "signedMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "11515:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 539, - "indexExpression": { - "argumentTypes": null, - "id": 538, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 527, - "src": "11530:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11515:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11546:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11515:32:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11505:42:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 543, - "nodeType": "ExpressionStatement", - "src": "11505:42:0" - } - ] - } - } - ] - }, - "documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n@return a bool upon valid or invalid signature with corresponding _data", - "id": 557, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "isValidSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 519, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11319:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 518, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11319:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 521, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11332:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 520, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11332:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11318:31:0" - }, - "payable": false, - "returnParameters": { - "id": 525, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 524, - "name": "isValid", - "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11382:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 523, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11382:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11381:14:0" - }, - "scope": 692, - "src": "11293:447:0", - "stateMutability": "nonpayable", - "superFunction": 1802, - "visibility": "public" - }, - { - "body": { - "id": 590, - "nodeType": "Block", - "src": "12009:246:0", - "statements": [ - { - "assignments": [ - 565 - ], - "declarations": [ - { - "constant": false, - "id": 565, - "name": "safeMessageHash", - "nodeType": "VariableDeclaration", - "scope": 591, - "src": "12019:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 564, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12019:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 575, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 569, - "name": "SAFE_MSG_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "12079:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 571, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 559, - "src": "12108:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 570, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12098:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12098:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 567, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12068:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12068:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12068:49:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 566, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12045:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12045:82:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12019:108:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12189:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12184:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12184:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12201:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12196:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12196:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 585, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "12205:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 586, - "name": "safeMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 565, - "src": "12222:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 577, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12167:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12167:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12167:71:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 576, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12144:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12144:104:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 563, - "id": 589, - "nodeType": "Return", - "src": "12137:111:0" - } - ] - }, - "documentation": "@dev Returns hash of a message that can be signed by owners.\n @param message Message that should be hashed\n @return Message hash.", - "id": 591, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getMessageHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 559, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 591, - "src": "11931:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 558, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11931:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11921:29:0" - }, - "payable": false, - "returnParameters": { - "id": 563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 562, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 591, - "src": "11996:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 561, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11996:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11995:9:0" - }, - "scope": 692, - "src": "11898:357:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 649, - "nodeType": "Block", - "src": "13318:285:0", - "statements": [ - { - "assignments": [ - 617 - ], - "declarations": [ - { - "constant": false, - "id": 617, - "name": "safeTxHash", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13328:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 616, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "13328:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 636, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 621, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "13383:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 622, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "13401:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 623, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 595, - "src": "13405:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 625, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "13422:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 624, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "13412:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13412:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 627, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "13429:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 628, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "13440:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 629, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 603, - "src": "13451:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "13460:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 607, - "src": "13470:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 632, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "13480:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 633, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 611, - "src": "13496:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 619, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "13372:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13372:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13372:131:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 618, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "13349:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13349:164:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13328:185:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13552:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13547:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13547:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13564:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13559:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13559:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 645, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "13568:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 646, - "name": "safeTxHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "13585:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 637, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "13530:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13530:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13530:66:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 615, - "id": 648, - "nodeType": "Return", - "src": "13523:73:0" - } - ] - }, - "documentation": "@dev Returns the bytes that are hashed to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Fas that should be used for the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash bytes.", - "id": 650, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "encodeTransactionData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 612, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 593, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13008:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13008:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 595, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13028:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 594, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13028:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 597, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13051:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 596, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13051:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 599, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13071:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 598, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "13071:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 601, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13105:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 600, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13105:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 603, - "name": "dataGas", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13132:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 602, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13132:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 605, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13157:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 604, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13157:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 607, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13183:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 606, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13183:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 609, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13209:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13209:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 611, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13241:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 610, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13241:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12998:263:0" - }, - "payable": false, - "returnParameters": { - "id": 615, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 614, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13307:5:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 613, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13307:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13306:7:0" - }, - "scope": 692, - "src": "12968:635:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 690, - "nodeType": "Block", - "src": "14638:148:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 677, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 652, - "src": "14687:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 678, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "14691:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 679, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "14698:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 680, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "14704:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 681, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 660, - "src": "14715:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 682, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 662, - "src": "14726:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 683, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 664, - "src": "14735:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 684, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "14745:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 685, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "14755:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 686, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "14771:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 676, - "name": "encodeTransactionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "14665:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)" - } - }, - "id": 687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14665:113:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 675, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "14655:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14655:124:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 674, - "id": 689, - "nodeType": "Return", - "src": "14648:131:0" - } - ] - }, - "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Fas that should be used for the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash.", - "id": 691, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 671, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 652, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14326:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 651, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14326:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 654, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14346:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 653, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14346:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 656, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14369:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 655, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14369:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 658, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14389:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 657, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "14389:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 660, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14423:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 659, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14423:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 662, - "name": "dataGas", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14450:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 661, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14450:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 664, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14475:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 663, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14475:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 666, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14501:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 665, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14501:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 668, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14527:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 667, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14527:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 670, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14559:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 669, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14559:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14316:263:0" - }, - "payable": false, - "returnParameters": { - "id": 674, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 673, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14625:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 672, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14625:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14624:9:0" - }, - "scope": 692, - "src": "14289:497:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 693, - "src": "534:14254:0" - } - ], - "src": "0:14789:0" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", - "exportedSymbols": { - "GnosisSafe": [ - 692 - ] - }, - "id": 693, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", - "file": "./base/BaseSafe.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 783, - "src": "24:29:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "file": "./common/MasterCopy.sol", - "id": 3, - "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1694, - "src": "54:33:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "file": "./common/SignatureDecoder.sol", - "id": 4, - "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1792, - "src": "88:39:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "file": "./common/SecuredTokenTransfer.sol", - "id": 5, - "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1719, - "src": "128:43:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", - "file": "./interfaces/ISignatureValidator.sol", - "id": 6, - "nodeType": "ImportDirective", - "scope": 693, - "sourceUnit": 1804, - "src": "172:46:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1693, - "src": "557:10:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$1693", - "typeString": "contract MasterCopy" - } - }, - "id": 8, - "nodeType": "InheritanceSpecifier", - "src": "557:10:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9, - "name": "BaseSafe", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 782, - "src": "569:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BaseSafe_$782", - "typeString": "contract BaseSafe" - } - }, - "id": 10, - "nodeType": "InheritanceSpecifier", - "src": "569:8:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 11, - "name": "SignatureDecoder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1791, - "src": "579:16:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureDecoder_$1791", - "typeString": "contract SignatureDecoder" - } - }, - "id": 12, - "nodeType": "InheritanceSpecifier", - "src": "579:16:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 13, - "name": "SecuredTokenTransfer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1718, - "src": "597:20:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1718", - "typeString": "contract SecuredTokenTransfer" - } - }, - "id": 14, - "nodeType": "InheritanceSpecifier", - "src": "597:20:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 15, - "name": "ISignatureValidator", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1803, - "src": "619:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISignatureValidator_$1803", - "typeString": "contract ISignatureValidator" - } - }, - "id": 16, - "nodeType": "InheritanceSpecifier", - "src": "619:19:0" - } - ], - "contractDependencies": [ - 782, - 892, - 1212, - 1652, - 1666, - 1693, - 1718, - 1735, - 1791, - 1803 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - \n @author Richard Meissner - \n @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment", - "fullyImplemented": true, - "id": 692, - "linearizedBaseContracts": [ - 692, - 1803, - 1718, - 1791, - 782, - 1652, - 1212, - 892, - 1666, - 1693, - 1735 - ], - "name": "GnosisSafe", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 19, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "646:43:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 17, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "646:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "476e6f7369732053616665", - "id": 18, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "676:13:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_72ec6775392f699e8ffd72b7c600556d49bdc746bf22bce93d3ae6019cdaff63", - "typeString": "literal_string \"Gnosis Safe\"" - }, - "value": "Gnosis Safe" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 22, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "695:40:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 20, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "695:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e32", - "id": 21, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "728:7:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" - }, - "value": "0.0.2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 25, - "name": "DOMAIN_SEPARATOR_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "820:118:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 23, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "820:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307830333561666638336438363933376433356233326530346630646463366666343639323930656566326631623639326438613831356338393430346434373439", - "id": 24, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "872:66:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1517718281442037948617199096126532355110765202990829672390711201829802035017_by_1", - "typeString": "int_const 1517...(68 digits omitted)...5017" - }, - "value": "0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 28, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1148:109:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 26, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1148:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307831346434363162633734313233363765393234363337623336336337626632396238663437653266383438363966343432366535363333643861663437623230", - "id": 27, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1191:66:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_9421503099487675527562227662599058764916562750590033657944341861770225548064_by_1", - "typeString": "int_const 9421...(68 digits omitted)...8064" - }, - "value": "0x14d461bc7412367e924637b363c7bf29b8f47e2f84869f4426e5633d8af47b20" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 31, - "name": "SAFE_MSG_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1329:110:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 29, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1329:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307836306233636266386234613232336436386436343162336236646466396132393865376633333731306366336433613964313134366235613631353066626361", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1373:66:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_43739706848186989041152069077571617734008543096732098246335109361212071148490_by_1", - "typeString": "int_const 4373...(69 digits omitted)...8490" - }, - "value": "0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 35, - "name": "ExecutionFailed", - "nodeType": "EventDefinition", - "parameters": { - "id": 34, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 33, - "indexed": false, - "name": "txHash", - "nodeType": "VariableDeclaration", - "scope": 35, - "src": "1468:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 32, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1468:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1467:16:0" - }, - "src": "1446:38:0" - }, - { - "constant": false, - "id": 37, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1490:20:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 36, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1490:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 39, - "name": "domainSeparator", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1516:30:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 38, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1516:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 43, - "name": "signedMessages", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1649:49:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 42, - "keyType": { - "id": 40, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1657:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1649:27:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 41, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1668:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 49, - "name": "approvedHashes", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "1809:69:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - }, - "typeName": { - "id": 48, - "keyType": { - "id": 44, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1817:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1809:47:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - }, - "valueType": { - "id": 47, - "keyType": { - "id": 45, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1836:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1828:27:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 46, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1847:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 85, - "nodeType": "Block", - "src": "2295:211:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 64, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 62, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "2313:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 63, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2332:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2313:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "446f6d61696e20536570617261746f7220616c72656164792073657421", - "id": 65, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2335:31:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", - "typeString": "literal_string \"Domain Separator already set!\"" - }, - "value": "Domain Separator already set!" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", - "typeString": "literal_string \"Domain Separator already set!\"" - } - ], - "id": 61, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2305:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 66, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2305:62:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 67, - "nodeType": "ExpressionStatement", - "src": "2305:62:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 76, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 68, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "2377:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 72, - "name": "DOMAIN_SEPARATOR_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "2416:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 73, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4052, - "src": "2443:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$692", - "typeString": "contract GnosisSafe" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_GnosisSafe_$692", - "typeString": "contract GnosisSafe" - } - ], - "expression": { - "argumentTypes": null, - "id": 70, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "2405:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 71, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2405:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 74, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2405:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 69, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "2395:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 75, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2395:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "2377:72:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 77, - "nodeType": "ExpressionStatement", - "src": "2377:72:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 79, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "2469:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 80, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "2478:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 81, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "2490:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 82, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "2494:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 78, - "name": "setupSafe", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 781, - "src": "2459:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address[] memory,uint256,address,bytes memory)" - } - }, - "id": 83, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2459:40:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 84, - "nodeType": "ExpressionStatement", - "src": "2459:40:0" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.", - "id": 86, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 59, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "_owners", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2213:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 50, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2213:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 51, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2213:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 54, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2232:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 53, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2232:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 56, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2252:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 55, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2252:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 58, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "2264:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 57, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2264:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2212:63:0" - }, - "payable": false, - "returnParameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [], - "src": "2295:0:0" - }, - "scope": 692, - "src": "2198:308:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 197, - "nodeType": "Block", - "src": "3833:1110:0", - "statements": [ - { - "assignments": [ - 112 - ], - "declarations": [ - { - "constant": false, - "id": 112, - "name": "startGas", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3843:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 111, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3843:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 115, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 113, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "3862:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3862:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3843:28:0" - }, - { - "assignments": [ - 117 - ], - "declarations": [ - { - "constant": false, - "id": 117, - "name": "txHashData", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3881:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 116, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3881:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 130, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 119, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "3942:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 120, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "3946:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 121, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "3953:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 122, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "3959:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 123, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4002:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 124, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "4013:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 125, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4022:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 126, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 102, - "src": "4032:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 127, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 104, - "src": "4042:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 128, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "4086:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 118, - "name": "encodeTransactionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "3907:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)" - } - }, - "id": 129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3907:194:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3881:220:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 134, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4145:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 133, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4135:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4135:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 136, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4158:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 137, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "4170:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4182:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 132, - "name": "checkSignatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "4119:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory,bytes memory,bool) returns (bool)" - } - }, - "id": 139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4119:68:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964207369676e6174757265732070726f7669646564", - "id": 140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4189:29:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_85bcea44c930431ef19052d068cc504a81260341ae6c5ee84bb5a38ec55acf05", - "typeString": "literal_string \"Invalid signatures provided\"" - }, - "value": "Invalid signatures provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_85bcea44c930431ef19052d068cc504a81260341ae6c5ee84bb5a38ec55acf05", - "typeString": "literal_string \"Invalid signatures provided\"" - } - ], - "id": 131, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4111:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4111:108:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 142, - "nodeType": "ExpressionStatement", - "src": "4111:108:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4280:7:0", - "subExpression": { - "argumentTypes": null, - "id": 143, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "4280:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 145, - "nodeType": "ExpressionStatement", - "src": "4280:7:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 147, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "4305:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4305:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 149, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4318:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4305:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", - "id": 151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4329:44:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", - "typeString": "literal_string \"Not enough gas to execute safe transaction\"" - }, - "value": "Not enough gas to execute safe transaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", - "typeString": "literal_string \"Not enough gas to execute safe transaction\"" - } - ], - "id": 146, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4297:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4297:77:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 153, - "nodeType": "ExpressionStatement", - "src": "4297:77:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 154, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "4491:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 156, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "4509:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 157, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "4513:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 158, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "4520:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 159, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "4526:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 160, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4537:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4550:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4537:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 163, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4555:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 164, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4567:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4555:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4537:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 169, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "4583:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "4537:55:0", - "trueExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 167, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "4571:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4571:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 155, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "4501:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4501:92:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4491:102:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 173, - "nodeType": "ExpressionStatement", - "src": "4491:102:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4607:8:0", - "subExpression": { - "argumentTypes": null, - "id": 174, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109, - "src": "4608:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 183, - "nodeType": "IfStatement", - "src": "4603:82:0", - "trueBody": { - "id": 182, - "nodeType": "Block", - "src": "4617:68:0", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 178, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4662:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 177, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4652:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4652:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 176, - "name": "ExecutionFailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "4636:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4636:38:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 181, - "nodeType": "EmitStatement", - "src": "4631:43:0" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 184, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4830:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4841:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4830:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 196, - "nodeType": "IfStatement", - "src": "4826:111:0", - "trueBody": { - "id": 195, - "nodeType": "Block", - "src": "4844:93:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 188, - "name": "startGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "4872:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 189, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "4882:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 190, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "4891:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 191, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 102, - "src": "4901:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 192, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 104, - "src": "4911:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 187, - "name": "handlePayment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 262, - "src": "4858:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$returns$__$", - "typeString": "function (uint256,uint256,uint256,address,address)" - } - }, - "id": 193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4858:68:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 194, - "nodeType": "ExpressionStatement", - "src": "4858:68:0" - } - ] - } - } - ] - }, - "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n Note: The fees are always transfered, even if the user transaction fails.\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param safeTxGas Gas that should be used for the Safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction and to pay the payment transfer\n @param gasPrice Gas price that should be used for the payment calculation.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 198, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 88, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3527:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 87, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3527:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 90, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3547:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 89, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3547:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 92, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3570:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 91, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3570:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 94, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3590:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 93, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "3590:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 96, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3624:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 95, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3624:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 98, - "name": "dataGas", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3651:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 97, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3651:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3676:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 99, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3676:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 102, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3702:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3702:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 104, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3728:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 103, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3728:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 106, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3760:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 105, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3760:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3517:265:0" - }, - "payable": false, - "returnParameters": { - "id": 110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 109, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 198, - "src": "3815:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 108, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3815:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3814:14:0" - }, - "scope": 692, - "src": "3493:1450:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 261, - "nodeType": "Block", - "src": "5132:532:0", - "statements": [ - { - "assignments": [ - 212 - ], - "declarations": [ - { - "constant": false, - "id": 212, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5142:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5142:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 223, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "gasUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "5161:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 214, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "5171:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5171:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5161:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 217, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5160:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 218, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 202, - "src": "5184:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5160:31:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 220, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5159:33:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 221, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 204, - "src": "5195:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5159:44:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5142:61:0" - }, - { - "assignments": [ - 225 - ], - "declarations": [ - { - "constant": false, - "id": 225, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5271:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 224, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5271:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 235, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 226, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "5290:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5316:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5308:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 229, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5308:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5290:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 233, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "5333:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5290:57:0", - "trueExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 231, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4027, - "src": "5321:2:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5321:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5271:76:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 236, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "5361:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5381:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5373:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5373:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5361:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 259, - "nodeType": "Block", - "src": "5545:113:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 252, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "5581:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 253, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "5591:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 254, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "5601:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 251, - "name": "transferToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1717, - "src": "5567:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5567:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5610:36:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", - "typeString": "literal_string \"Could not pay gas costs with token\"" - }, - "value": "Could not pay gas costs with token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", - "typeString": "literal_string \"Could not pay gas costs with token\"" - } - ], - "id": 250, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "5559:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5559:88:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 258, - "nodeType": "ExpressionStatement", - "src": "5559:88:0" - } - ] - }, - "id": 260, - "nodeType": "IfStatement", - "src": "5357:301:0", - "trueBody": { - "id": 249, - "nodeType": "Block", - "src": "5385:154:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 244, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 212, - "src": "5482:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 242, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "5468:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "send", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5468:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) returns (bool)" - } - }, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5468:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5491:36:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", - "typeString": "literal_string \"Could not pay gas costs with ether\"" - }, - "value": "Could not pay gas costs with ether" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", - "typeString": "literal_string \"Could not pay gas costs with ether\"" - } - ], - "id": 241, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "5460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5460:68:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 248, - "nodeType": "ExpressionStatement", - "src": "5460:68:0" - } - ] - } - } - ] - }, - "documentation": null, - "id": 262, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "handlePayment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 209, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 200, - "name": "gasUsed", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "4981:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4981:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 202, - "name": "dataGas", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5006:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 201, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5006:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 204, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5031:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 203, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5031:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 206, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5057:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 205, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5057:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 208, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "5083:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 207, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5083:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4971:140:0" - }, - "payable": false, - "returnParameters": { - "id": 210, - "nodeType": "ParameterList", - "parameters": [], - "src": "5132:0:0" - }, - "scope": 692, - "src": "4949:715:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 427, - "nodeType": "Block", - "src": "6415:2326:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 275, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "6496:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6496:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 277, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "6516:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3635", - "id": 278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6528:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "65" - }, - "src": "6516:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6496:34:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 284, - "nodeType": "IfStatement", - "src": "6492:77:0", - "trueBody": { - "id": 283, - "nodeType": "Block", - "src": "6532:37:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6553:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 282, - "nodeType": "Return", - "src": "6546:12:0" - } - ] - } - }, - { - "assignments": [ - 286 - ], - "declarations": [ - { - "constant": false, - "id": 286, - "name": "lastOwner", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6630:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 285, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6630:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 290, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 288, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6658:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6650:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6650:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6630:30:0" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 292, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6670:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6670:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 293, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6670:20:0" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 295, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6700:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 294, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "6700:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 296, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6700:7:0" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 298, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6717:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 297, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6717:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 299, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6717:9:0" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 301, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6736:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 300, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6736:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 302, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6736:9:0" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 304, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6755:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6755:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 305, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6755:9:0" - }, - { - "body": { - "id": 423, - "nodeType": "Block", - "src": "6806:1908:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 316, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "6821:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 317, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "6824:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 318, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "6827:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 319, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "6820:9:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 321, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "6847:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 322, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6859:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 320, - "name": "signatureSplit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "6832:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" - } - }, - "id": 323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6832:29:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "src": "6820:41:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 325, - "nodeType": "ExpressionStatement", - "src": "6820:41:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 326, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "6936:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6941:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6936:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 352, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "7691:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7696:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7691:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 403, - "nodeType": "Block", - "src": "8399:149:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 394, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8490:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 396, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "8515:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 397, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "8525:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 398, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "8528:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 399, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "8531:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 395, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4007, - "src": "8505:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8505:28:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8490:43:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 402, - "nodeType": "ExpressionStatement", - "src": "8490:43:0" - } - ] - }, - "id": 404, - "nodeType": "IfStatement", - "src": "7687:861:0", - "trueBody": { - "id": 393, - "nodeType": "Block", - "src": "7699:694:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 355, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "7812:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 357, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "7835:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7827:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7827:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7812:25:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 360, - "nodeType": "ExpressionStatement", - "src": "7812:25:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 361, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "8004:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8004:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 363, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8018:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8004:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 365, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8034:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - } - }, - "id": 367, - "indexExpression": { - "argumentTypes": null, - "id": 366, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8049:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8034:28:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 369, - "indexExpression": { - "argumentTypes": null, - "id": 368, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "8063:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8034:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8076:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8034:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8004:73:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 376, - "nodeType": "IfStatement", - "src": "8000:132:0", - "trueBody": { - "id": 375, - "nodeType": "Block", - "src": "8079:53:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8108:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 374, - "nodeType": "Return", - "src": "8101:12:0" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 377, - "name": "consumeHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "8253:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 378, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "8268:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8268:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 380, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8282:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8268:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8253:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 392, - "nodeType": "IfStatement", - "src": "8249:130:0", - "trueBody": { - "id": 391, - "nodeType": "Block", - "src": "8296:83:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 383, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8318:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - } - }, - "id": 386, - "indexExpression": { - "argumentTypes": null, - "id": 384, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8333:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8318:28:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 387, - "indexExpression": { - "argumentTypes": null, - "id": 385, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 264, - "src": "8347:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8318:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8359:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8318:42:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 390, - "nodeType": "ExpressionStatement", - "src": "8318:42:0" - } - ] - } - } - ] - } - }, - "id": 405, - "nodeType": "IfStatement", - "src": "6932:1616:0", - "trueBody": { - "id": 351, - "nodeType": "Block", - "src": "6944:737:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 329, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "7061:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 331, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "7084:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7076:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7076:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7061:25:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 334, - "nodeType": "ExpressionStatement", - "src": "7061:25:0" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 336, - "name": "contractSignature", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "7104:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 335, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7104:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 337, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7104:30:0" - }, - { - "externalReferences": [ - { - "contractSignature": { - "declaration": 336, - "isOffset": false, - "isSlot": false, - "src": "7394:17:0", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 268, - "isOffset": false, - "isSlot": false, - "src": "7423:10:0", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 301, - "isOffset": false, - "isSlot": false, - "src": "7435:1:0", - "valueSize": 1 - } - } - ], - "id": 338, - "nodeType": "InlineAssembly", - "operations": "{\n contractSignature := add(add(signatures, s), 0x20)\n}", - "src": "7224:257:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7483:76:0", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 343, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "7535:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 344, - "name": "contractSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "7541:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 340, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "7504:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 339, - "name": "ISignatureValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "7484:19:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISignatureValidator_$1803_$", - "typeString": "type(contract ISignatureValidator)" - } - }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7484:33:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISignatureValidator_$1803", - "typeString": "contract ISignatureValidator" - } - }, - "id": 342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isValidSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "7484:50:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes memory,bytes memory) external returns (bool)" - } - }, - "id": 345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7484:75:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 350, - "nodeType": "IfStatement", - "src": "7479:135:0", - "trueBody": { - "id": 349, - "nodeType": "Block", - "src": "7561:53:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7590:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 348, - "nodeType": "Return", - "src": "7583:12:0" - } - ] - } - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 406, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8565:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 407, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "8581:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8565:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 409, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "8594:6:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 411, - "indexExpression": { - "argumentTypes": null, - "id": 410, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8601:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8594:20:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8618:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8594:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8565:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 418, - "nodeType": "IfStatement", - "src": "8561:105:0", - "trueBody": { - "id": 417, - "nodeType": "Block", - "src": "8621:45:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8646:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 274, - "id": 416, - "nodeType": "Return", - "src": "8639:12:0" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 419, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "8679:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 420, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "8691:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8679:24:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 422, - "nodeType": "ExpressionStatement", - "src": "8679:24:0" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 310, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6786:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 311, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "6790:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6786:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 424, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 306, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6779:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6783:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6779:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 309, - "nodeType": "ExpressionStatement", - "src": "6779:5:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6801:3:0", - "subExpression": { - "argumentTypes": null, - "id": 313, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6801:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 315, - "nodeType": "ExpressionStatement", - "src": "6801:3:0" - }, - "nodeType": "ForStatement", - "src": "6774:1940:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8730:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 274, - "id": 426, - "nodeType": "Return", - "src": "8723:11:0" - } - ] - }, - "documentation": "@dev Should return whether the signature provided is valid for the provided data, hash\n@param dataHash Hash of the data (could be either a message hash or transaction hash)\n@param data That should be signed (this is passed to an external validator contract)\n@param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\n@param consumeHash Indicates that in case of an approved hash the storage can be freed to save gas\n@return a bool upon valid or invalid signature with corresponding _data", - "id": 428, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "checkSignatures", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 271, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 264, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6305:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 263, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6305:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 266, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6323:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 265, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6323:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 268, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6335:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 267, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6335:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 270, - "name": "consumeHash", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6353:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 269, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6353:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6304:66:0" - }, - "payable": false, - "returnParameters": { - "id": 274, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 273, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "6405:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 272, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6405:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6404:6:0" - }, - "scope": 692, - "src": "6280:2461:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 475, - "nodeType": "Block", - "src": "9804:420:0", - "statements": [ - { - "assignments": [ - 444 - ], - "declarations": [ - { - "constant": false, - "id": 444, - "name": "startGas", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9814:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 443, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9814:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 447, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 445, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "9833:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9833:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9814:28:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 450, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "10004:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 451, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "10008:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 452, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "10015:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 453, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 436, - "src": "10021:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 454, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "10032:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 449, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "9996:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9996:46:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4018, - "src": "9988:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9988:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 458, - "nodeType": "ExpressionStatement", - "src": "9988:55:0" - }, - { - "assignments": [ - 460 - ], - "declarations": [ - { - "constant": false, - "id": 460, - "name": "requiredGas", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "10053:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10053:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 465, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 461, - "name": "startGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 444, - "src": "10075:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 462, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "10086:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10086:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10075:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10053:42:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 470, - "name": "requiredGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 460, - "src": "10203:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 468, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "10186:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10186:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10186:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 467, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10179:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": "string" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10179:37:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - ], - "id": 466, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "10172:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10172:45:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 474, - "nodeType": "ExpressionStatement", - "src": "10172:45:0" - } - ] - }, - "documentation": "@dev Allows to estimate a Safe transaction.\n This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n 1.) The method can only be called from the safe itself\n 2.) The response is returned with a revert\n When estimating set `from` to the address of the safe.\n Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).", - "id": 476, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 439, - "modifierName": { - "argumentTypes": null, - "id": 438, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "9763:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9763:10:0" - } - ], - "name": "requiredTxGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 437, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 430, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9675:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 429, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9675:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 432, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9687:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 431, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9687:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 434, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9702:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 433, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9702:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 436, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9714:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 435, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "9714:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9674:65:0" - }, - "payable": false, - "returnParameters": { - "id": 442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 441, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 476, - "src": "9791:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9791:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9790:9:0" - }, - "scope": 692, - "src": "9652:572:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 500, - "nodeType": "Block", - "src": "10531:138:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 482, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "10549:6:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 485, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 483, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "10556:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10556:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10549:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10571:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10549:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f6e6c79206f776e6572732063616e20617070726f766520612068617368", - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10574:32:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", - "typeString": "literal_string \"Only owners can approve a hash\"" - }, - "value": "Only owners can approve a hash" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", - "typeString": "literal_string \"Only owners can approve a hash\"" - } - ], - "id": 481, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "10541:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10541:66:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 490, - "nodeType": "ExpressionStatement", - "src": "10541:66:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 491, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "10617:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - } - }, - "id": 495, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 492, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "10632:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10632:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10617:26:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 496, - "indexExpression": { - "argumentTypes": null, - "id": 494, - "name": "hashToApprove", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "10644:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10617:41:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10661:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10617:45:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "10617:45:0" - } - ] - }, - "documentation": "@dev Marks a hash as approved. This can be used to validate a hash that is used by a signature.\n@param hashToApprove The hash that should be marked as approved for signatures that are verified by this contract.", - "id": 501, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 479, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 478, - "name": "hashToApprove", - "nodeType": "VariableDeclaration", - "scope": 501, - "src": "10489:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 477, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10489:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10488:23:0" - }, - "payable": false, - "returnParameters": { - "id": 480, - "nodeType": "ParameterList", - "parameters": [], - "src": "10531:0:0" - }, - "scope": 692, - "src": "10468:201:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 516, - "nodeType": "Block", - "src": "10903:58:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 508, - "name": "signedMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "10913:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 512, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 510, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "10943:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 509, - "name": "getMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "10928:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) view returns (bytes32)" - } - }, - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10928:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10913:37:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 513, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10953:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10913:41:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 515, - "nodeType": "ExpressionStatement", - "src": "10913:41:0" - } - ] - }, - "documentation": "@dev Marks a message as signed\n@param _data Arbitrary length data that should be marked as signed on the behalf of address(this)", - "id": 517, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 506, - "modifierName": { - "argumentTypes": null, - "id": 505, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "10888:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10888:10:0" - } - ], - "name": "signMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 504, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 503, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 517, - "src": "10852:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 502, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10852:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10851:13:0" - }, - "payable": false, - "returnParameters": { - "id": 507, - "nodeType": "ParameterList", - "parameters": [], - "src": "10903:0:0" - }, - "scope": 692, - "src": "10831:130:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 556, - "nodeType": "Block", - "src": "11400:340:0", - "statements": [ - { - "assignments": [ - 527 - ], - "declarations": [ - { - "constant": false, - "id": 527, - "name": "messageHash", - "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11410:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 526, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11410:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 531, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 529, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11447:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 528, - "name": "getMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 591, - "src": "11432:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) view returns (bytes32)" - } - }, - "id": 530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11432:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11410:43:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 532, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 521, - "src": "11467:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11467:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11488:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11467:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 554, - "nodeType": "Block", - "src": "11564:170:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 545, - "name": "isValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11659:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 547, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 527, - "src": "11685:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 548, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 519, - "src": "11698:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 549, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 521, - "src": "11705:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11717:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 546, - "name": "checkSignatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "11669:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory,bytes memory,bool) returns (bool)" - } - }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11669:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11659:64:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 553, - "nodeType": "ExpressionStatement", - "src": "11659:64:0" - } - ] - }, - "id": 555, - "nodeType": "IfStatement", - "src": "11463:271:0", - "trueBody": { - "id": 544, - "nodeType": "Block", - "src": "11491:67:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 536, - "name": "isValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11505:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 537, - "name": "signedMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "11515:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 539, - "indexExpression": { - "argumentTypes": null, - "id": 538, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 527, - "src": "11530:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11515:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11546:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11515:32:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11505:42:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 543, - "nodeType": "ExpressionStatement", - "src": "11505:42:0" - } - ] - } - } - ] - }, - "documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n@return a bool upon valid or invalid signature with corresponding _data", - "id": 557, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "isValidSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 519, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11319:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 518, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11319:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 521, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11332:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 520, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11332:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11318:31:0" - }, - "payable": false, - "returnParameters": { - "id": 525, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 524, - "name": "isValid", - "nodeType": "VariableDeclaration", - "scope": 557, - "src": "11382:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 523, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11382:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11381:14:0" - }, - "scope": 692, - "src": "11293:447:0", - "stateMutability": "nonpayable", - "superFunction": 1802, - "visibility": "public" - }, - { - "body": { - "id": 590, - "nodeType": "Block", - "src": "12009:246:0", - "statements": [ - { - "assignments": [ - 565 - ], - "declarations": [ - { - "constant": false, - "id": 565, - "name": "safeMessageHash", - "nodeType": "VariableDeclaration", - "scope": 591, - "src": "12019:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 564, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12019:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 575, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 569, - "name": "SAFE_MSG_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "12079:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 571, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 559, - "src": "12108:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 570, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12098:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12098:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 567, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12068:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12068:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12068:49:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 566, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12045:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12045:82:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12019:108:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12189:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12184:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12184:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12201:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12196:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12196:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 585, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "12205:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 586, - "name": "safeMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 565, - "src": "12222:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 577, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12167:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12167:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12167:71:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 576, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12144:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12144:104:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 563, - "id": 589, - "nodeType": "Return", - "src": "12137:111:0" - } - ] - }, - "documentation": "@dev Returns hash of a message that can be signed by owners.\n @param message Message that should be hashed\n @return Message hash.", - "id": 591, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getMessageHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 559, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 591, - "src": "11931:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 558, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11931:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11921:29:0" - }, - "payable": false, - "returnParameters": { - "id": 563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 562, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 591, - "src": "11996:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 561, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11996:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11995:9:0" - }, - "scope": 692, - "src": "11898:357:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 649, - "nodeType": "Block", - "src": "13318:285:0", - "statements": [ - { - "assignments": [ - 617 - ], - "declarations": [ - { - "constant": false, - "id": 617, - "name": "safeTxHash", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13328:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 616, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "13328:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 636, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 621, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "13383:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 622, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "13401:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 623, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 595, - "src": "13405:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 625, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "13422:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 624, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "13412:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13412:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 627, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "13429:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 628, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "13440:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 629, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 603, - "src": "13451:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "13460:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 607, - "src": "13470:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 632, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "13480:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 633, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 611, - "src": "13496:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 619, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "13372:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13372:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13372:131:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 618, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "13349:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13349:164:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13328:185:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13552:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13547:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13547:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13564:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13559:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13559:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 645, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "13568:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 646, - "name": "safeTxHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 617, - "src": "13585:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 637, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "13530:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13530:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13530:66:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 615, - "id": 648, - "nodeType": "Return", - "src": "13523:73:0" - } - ] - }, - "documentation": "@dev Returns the bytes that are hashed to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Fas that should be used for the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash bytes.", - "id": 650, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "encodeTransactionData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 612, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 593, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13008:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13008:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 595, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13028:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 594, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13028:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 597, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13051:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 596, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13051:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 599, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13071:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 598, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "13071:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 601, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13105:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 600, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13105:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 603, - "name": "dataGas", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13132:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 602, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13132:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 605, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13157:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 604, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13157:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 607, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13183:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 606, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13183:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 609, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13209:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13209:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 611, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13241:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 610, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13241:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12998:263:0" - }, - "payable": false, - "returnParameters": { - "id": 615, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 614, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 650, - "src": "13307:5:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 613, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13307:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13306:7:0" - }, - "scope": 692, - "src": "12968:635:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 690, - "nodeType": "Block", - "src": "14638:148:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 677, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 652, - "src": "14687:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 678, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "14691:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 679, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "14698:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 680, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "14704:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 681, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 660, - "src": "14715:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 682, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 662, - "src": "14726:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 683, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 664, - "src": "14735:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 684, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "14745:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 685, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "14755:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 686, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "14771:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 676, - "name": "encodeTransactionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "14665:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)" - } - }, - "id": 687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14665:113:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 675, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "14655:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14655:124:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 674, - "id": 689, - "nodeType": "Return", - "src": "14648:131:0" - } - ] - }, - "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param safeTxGas Fas that should be used for the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash.", - "id": 691, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 671, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 652, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14326:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 651, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14326:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 654, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14346:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 653, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14346:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 656, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14369:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 655, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14369:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 658, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14389:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 657, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "14389:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 660, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14423:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 659, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14423:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 662, - "name": "dataGas", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14450:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 661, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14450:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 664, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14475:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 663, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14475:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 666, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14501:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 665, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14501:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 668, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14527:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 667, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14527:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 670, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14559:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 669, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14559:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14316:263:0" - }, - "payable": false, - "returnParameters": { - "id": 674, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 673, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "14625:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 672, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14625:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14624:9:0" - }, - "scope": 692, - "src": "14289:497:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 693, - "src": "534:14254:0" - } - ], - "src": "0:14789:0" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x1d0fbe91e6f0c8506b70a9659b3b9f962d25bfa1", - "transactionHash": "0xa1b4d6790c09394af1233b0ae788b1d92f58be265e6baa815930e502393f0eaa" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0x254dffcd3277c0b1660f6d42efbb754edababc2b", - "transactionHash": "0x515bd2920d6d65a280f2456bc1a7e2f38eeccd5995708dfb55bb1871875ae37d" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.464Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/ISignatureValidator.json b/safe-contracts/build/contracts/ISignatureValidator.json deleted file mode 100644 index 266bcc87..00000000 --- a/safe-contracts/build/contracts/ISignatureValidator.json +++ /dev/null @@ -1,339 +0,0 @@ -{ - "contractName": "ISignatureValidator", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_data", - "type": "bytes" - }, - { - "name": "_signature", - "type": "bytes" - } - ], - "name": "isValidSignature", - "outputs": [ - { - "name": "isValid", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity 0.4.24;\n\ncontract ISignatureValidator {\n /**\n * @dev Should return whether the signature provided is valid for the provided data\n * @param _data Arbitrary length data signed on the behalf of address(this)\n * @param _signature Signature byte array associated with _data\n *\n * MUST return a bool upon valid or invalid signature with corresponding _data\n * MUST take (bytes, bytes) as arguments\n */ \n function isValidSignature(\n bytes _data, \n bytes _signature)\n public\n returns (bool isValid); \n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", - "exportedSymbols": { - "ISignatureValidator": [ - 1803 - ] - }, - "id": 1804, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1793, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:13" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 1803, - "linearizedBaseContracts": [ - 1803 - ], - "name": "ISignatureValidator", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n * MUST return a bool upon valid or invalid signature with corresponding _data\nMUST take (bytes, bytes) as arguments", - "id": 1802, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "isValidSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1798, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1795, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1802, - "src": "476:11:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1794, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "476:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1797, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1802, - "src": "498:16:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1796, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "498:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "466:49:13" - }, - "payable": false, - "returnParameters": { - "id": 1801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1800, - "name": "isValid", - "nodeType": "VariableDeclaration", - "scope": 1802, - "src": "548:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1799, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "548:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "547:14:13" - }, - "scope": 1803, - "src": "441:121:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1804, - "src": "25:540:13" - } - ], - "src": "0:565:13" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", - "exportedSymbols": { - "ISignatureValidator": [ - 1803 - ] - }, - "id": 1804, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1793, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:13" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 1803, - "linearizedBaseContracts": [ - 1803 - ], - "name": "ISignatureValidator", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n * MUST return a bool upon valid or invalid signature with corresponding _data\nMUST take (bytes, bytes) as arguments", - "id": 1802, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "isValidSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1798, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1795, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1802, - "src": "476:11:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1794, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "476:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1797, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1802, - "src": "498:16:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1796, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "498:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "466:49:13" - }, - "payable": false, - "returnParameters": { - "id": 1801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1800, - "name": "isValid", - "nodeType": "VariableDeclaration", - "scope": 1802, - "src": "548:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1799, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "548:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "547:14:13" - }, - "scope": 1803, - "src": "441:121:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1804, - "src": "25:540:13" - } - ], - "src": "0:565:13" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.938Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/MasterCopy.json b/safe-contracts/build/contracts/MasterCopy.json deleted file mode 100644 index 0af762ab..00000000 --- a/safe-contracts/build/contracts/MasterCopy.json +++ /dev/null @@ -1,718 +0,0 @@ -{ - "contractName": "MasterCopy", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - } - ], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610276806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582035e9d5d611938f796affd4397aed671c5c4079783e0a67a874440cb154a411440029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582035e9d5d611938f796affd4397aed671c5c4079783e0a67a874440cb154a411440029", - "sourceMap": "203:673:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:673:9;;;;;;;", - "deployedSourceMap": "203:673:9:-;;;;;;;;;;;;;;;;;;;;;;;;626:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./SelfAuthorized.sol\";\n\n\n/// @title MasterCopy - Base for master copy contracts (should always be first super contract)\n/// @author Richard Meissner - \ncontract MasterCopy is SelfAuthorized {\n // masterCopy always needs to be first declared variable, to ensure that it is at the same location as in the Proxy contract.\n // It should also always be ensured that the address is stored alone (uses a full word)\n address masterCopy;\n\n /// @dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n /// @param _masterCopy New contract address.\n function changeMasterCopy(address _masterCopy)\n public\n authorized\n {\n // Master copy address cannot be null.\n require(_masterCopy != 0, \"Invalid master copy address provided\");\n masterCopy = _masterCopy;\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "exportedSymbols": { - "MasterCopy": [ - 1693 - ] - }, - "id": 1694, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1668, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "file": "./SelfAuthorized.sol", - "id": 1669, - "nodeType": "ImportDirective", - "scope": 1694, - "sourceUnit": 1736, - "src": "24:30:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1670, - "name": "SelfAuthorized", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1735, - "src": "226:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", - "typeString": "contract SelfAuthorized" - } - }, - "id": 1671, - "nodeType": "InheritanceSpecifier", - "src": "226:14:9" - } - ], - "contractDependencies": [ - 1735 - ], - "contractKind": "contract", - "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1693, - "linearizedBaseContracts": [ - 1693, - 1735 - ], - "name": "MasterCopy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1673, - "name": "masterCopy", - "nodeType": "VariableDeclaration", - "scope": 1693, - "src": "465:18:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1672, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "465:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 1691, - "nodeType": "Block", - "src": "711:163:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1681, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "776:11:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1682, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "791:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "776:16:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 1684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "794:38:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - }, - "value": "Invalid master copy address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - } - ], - "id": 1680, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "768:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "768:65:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1686, - "nodeType": "ExpressionStatement", - "src": "768:65:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 1689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1687, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1673, - "src": "843:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1688, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "856:11:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "843:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1690, - "nodeType": "ExpressionStatement", - "src": "843:24:9" - } - ] - }, - "documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.", - "id": 1692, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1678, - "modifierName": { - "argumentTypes": null, - "id": 1677, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "696:10:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "696:10:9" - } - ], - "name": "changeMasterCopy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1676, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1675, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 1692, - "src": "652:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "652:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "651:21:9" - }, - "payable": false, - "returnParameters": { - "id": 1679, - "nodeType": "ParameterList", - "parameters": [], - "src": "711:0:9" - }, - "scope": 1693, - "src": "626:248:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1694, - "src": "203:673:9" - } - ], - "src": "0:877:9" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "exportedSymbols": { - "MasterCopy": [ - 1693 - ] - }, - "id": 1694, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1668, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "file": "./SelfAuthorized.sol", - "id": 1669, - "nodeType": "ImportDirective", - "scope": 1694, - "sourceUnit": 1736, - "src": "24:30:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1670, - "name": "SelfAuthorized", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1735, - "src": "226:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", - "typeString": "contract SelfAuthorized" - } - }, - "id": 1671, - "nodeType": "InheritanceSpecifier", - "src": "226:14:9" - } - ], - "contractDependencies": [ - 1735 - ], - "contractKind": "contract", - "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1693, - "linearizedBaseContracts": [ - 1693, - 1735 - ], - "name": "MasterCopy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1673, - "name": "masterCopy", - "nodeType": "VariableDeclaration", - "scope": 1693, - "src": "465:18:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1672, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "465:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 1691, - "nodeType": "Block", - "src": "711:163:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1681, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "776:11:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1682, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "791:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "776:16:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 1684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "794:38:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - }, - "value": "Invalid master copy address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - } - ], - "id": 1680, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "768:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "768:65:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1686, - "nodeType": "ExpressionStatement", - "src": "768:65:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 1689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1687, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1673, - "src": "843:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1688, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "856:11:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "843:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1690, - "nodeType": "ExpressionStatement", - "src": "843:24:9" - } - ] - }, - "documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.", - "id": 1692, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1678, - "modifierName": { - "argumentTypes": null, - "id": 1677, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "696:10:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "696:10:9" - } - ], - "name": "changeMasterCopy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1676, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1675, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 1692, - "src": "652:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "652:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "651:21:9" - }, - "payable": false, - "returnParameters": { - "id": 1679, - "nodeType": "ParameterList", - "parameters": [], - "src": "711:0:9" - }, - "scope": 1693, - "src": "626:248:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1694, - "src": "203:673:9" - } - ], - "src": "0:877:9" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.937Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Migrations.json b/safe-contracts/build/contracts/Migrations.json deleted file mode 100644 index 6f71b541..00000000 --- a/safe-contracts/build/contracts/Migrations.json +++ /dev/null @@ -1,1393 +0,0 @@ -{ - "contractName": "Migrations", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "last_completed_migration", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "constant": false, - "inputs": [ - { - "name": "completed", - "type": "uint256" - } - ], - "name": "setCompleted", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "new_address", - "type": "address" - } - ], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820395a1faf61b0f17e3924c1d3e3b1152739b523adb57dd5b79bb0bea6897a5ff70029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820395a1faf61b0f17e3924c1d3e3b1152739b523adb57dd5b79bb0bea6897a5ff70029", - "sourceMap": "25:572:1:-;;;191:68;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:68:1;242:10;234:5;;:18;;;;;;;;;;;;;;;;;;25:572;;;;;;", - "deployedSourceMap": "25:572:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;400:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;400:195:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;77:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;77:36:1;;;;;;;;;;;;;;;;;;;;;;;51:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:20:1;;;;;;;;;;;;;;;;;;;;;;;;;;;265:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;265:129:1;;;;;;;;;;;;;;;;;;;;;;;;;;400:195;486:19;170:5;;;;;;;;;;;156:19;;:10;:19;;;152:26;;;519:11;486:45;;541:8;:21;;;563:24;;541:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;541:47:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;541:47:1;;;;152:26;400:195;;:::o;77:36::-;;;;:::o;51:20::-;;;;;;;;;;;;;:::o;265:129::-;170:5;;;;;;;;;;;156:19;;:10;:19;;;152:26;;;378:9;351:24;:36;;;;152:26;265:129;:::o", - "source": "pragma solidity ^0.4.4;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor()\n public\n {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed)\n public\n restricted\n {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address)\n public\n restricted\n {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Migrations.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 749 - ] - }, - "id": 750, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 694, - "literals": [ - "solidity", - "^", - "0.4", - ".4" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 749, - "linearizedBaseContracts": [ - 749 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 696, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 749, - "src": "51:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 695, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "51:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 698, - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "scope": 749, - "src": "77:36:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 697, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "77:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 706, - "nodeType": "Block", - "src": "142:43:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 700, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "156:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "156:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 702, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "170:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "156:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 705, - "nodeType": "IfStatement", - "src": "152:26:1", - "trueBody": { - "id": 704, - "nodeType": "PlaceholderStatement", - "src": "177:1:1" - } - } - ] - }, - "documentation": null, - "id": 707, - "name": "restricted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 699, - "nodeType": "ParameterList", - "parameters": [], - "src": "139:2:1" - }, - "src": "120:65:1", - "visibility": "internal" - }, - { - "body": { - "id": 715, - "nodeType": "Block", - "src": "224:35:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 710, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "234:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 711, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "242:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "242:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "234:18:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 714, - "nodeType": "ExpressionStatement", - "src": "234:18:1" - } - ] - }, - "documentation": null, - "id": 716, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 708, - "nodeType": "ParameterList", - "parameters": [], - "src": "202:2:1" - }, - "payable": false, - "returnParameters": { - "id": 709, - "nodeType": "ParameterList", - "parameters": [], - "src": "224:0:1" - }, - "scope": 749, - "src": "191:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 727, - "nodeType": "Block", - "src": "341:53:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 723, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "351:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 724, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 718, - "src": "378:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "351:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 726, - "nodeType": "ExpressionStatement", - "src": "351:36:1" - } - ] - }, - "documentation": null, - "id": 728, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 721, - "modifierName": { - "argumentTypes": null, - "id": 720, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 707, - "src": "326:10:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "326:10:1" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 719, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 718, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 728, - "src": "287:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 717, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "286:16:1" - }, - "payable": false, - "returnParameters": { - "id": 722, - "nodeType": "ParameterList", - "parameters": [], - "src": "341:0:1" - }, - "scope": 749, - "src": "265:129:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 747, - "nodeType": "Block", - "src": "476:119:1", - "statements": [ - { - "assignments": [ - 736 - ], - "declarations": [ - { - "constant": false, - "id": 736, - "name": "upgraded", - "nodeType": "VariableDeclaration", - "scope": 748, - "src": "486:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", - "typeString": "contract Migrations" - }, - "typeName": { - "contractScope": null, - "id": 735, - "name": "Migrations", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 749, - "src": "486:10:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", - "typeString": "contract Migrations" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 740, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 738, - "name": "new_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "519:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 737, - "name": "Migrations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "508:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$749_$", - "typeString": "type(contract Migrations)" - } - }, - "id": 739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "508:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", - "typeString": "contract Migrations" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "486:45:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 744, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "563:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 741, - "name": "upgraded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 736, - "src": "541:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", - "typeString": "contract Migrations" - } - }, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setCompleted", - "nodeType": "MemberAccess", - "referencedDeclaration": 728, - "src": "541:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "541:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "541:47:1" - } - ] - }, - "documentation": null, - "id": 748, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 733, - "modifierName": { - "argumentTypes": null, - "id": 732, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 707, - "src": "461:10:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "461:10:1" - } - ], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 730, - "name": "new_address", - "nodeType": "VariableDeclaration", - "scope": 748, - "src": "417:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 729, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "416:21:1" - }, - "payable": false, - "returnParameters": { - "id": 734, - "nodeType": "ParameterList", - "parameters": [], - "src": "476:0:1" - }, - "scope": 749, - "src": "400:195:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 750, - "src": "25:572:1" - } - ], - "src": "0:598:1" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 749 - ] - }, - "id": 750, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 694, - "literals": [ - "solidity", - "^", - "0.4", - ".4" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 749, - "linearizedBaseContracts": [ - 749 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 696, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 749, - "src": "51:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 695, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "51:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 698, - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "scope": 749, - "src": "77:36:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 697, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "77:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 706, - "nodeType": "Block", - "src": "142:43:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 700, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "156:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "156:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 702, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "170:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "156:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 705, - "nodeType": "IfStatement", - "src": "152:26:1", - "trueBody": { - "id": 704, - "nodeType": "PlaceholderStatement", - "src": "177:1:1" - } - } - ] - }, - "documentation": null, - "id": 707, - "name": "restricted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 699, - "nodeType": "ParameterList", - "parameters": [], - "src": "139:2:1" - }, - "src": "120:65:1", - "visibility": "internal" - }, - { - "body": { - "id": 715, - "nodeType": "Block", - "src": "224:35:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 710, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "234:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 711, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "242:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "242:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "234:18:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 714, - "nodeType": "ExpressionStatement", - "src": "234:18:1" - } - ] - }, - "documentation": null, - "id": 716, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 708, - "nodeType": "ParameterList", - "parameters": [], - "src": "202:2:1" - }, - "payable": false, - "returnParameters": { - "id": 709, - "nodeType": "ParameterList", - "parameters": [], - "src": "224:0:1" - }, - "scope": 749, - "src": "191:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 727, - "nodeType": "Block", - "src": "341:53:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 723, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "351:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 724, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 718, - "src": "378:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "351:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 726, - "nodeType": "ExpressionStatement", - "src": "351:36:1" - } - ] - }, - "documentation": null, - "id": 728, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 721, - "modifierName": { - "argumentTypes": null, - "id": 720, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 707, - "src": "326:10:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "326:10:1" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 719, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 718, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 728, - "src": "287:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 717, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "286:16:1" - }, - "payable": false, - "returnParameters": { - "id": 722, - "nodeType": "ParameterList", - "parameters": [], - "src": "341:0:1" - }, - "scope": 749, - "src": "265:129:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 747, - "nodeType": "Block", - "src": "476:119:1", - "statements": [ - { - "assignments": [ - 736 - ], - "declarations": [ - { - "constant": false, - "id": 736, - "name": "upgraded", - "nodeType": "VariableDeclaration", - "scope": 748, - "src": "486:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", - "typeString": "contract Migrations" - }, - "typeName": { - "contractScope": null, - "id": 735, - "name": "Migrations", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 749, - "src": "486:10:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", - "typeString": "contract Migrations" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 740, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 738, - "name": "new_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "519:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 737, - "name": "Migrations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "508:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$749_$", - "typeString": "type(contract Migrations)" - } - }, - "id": 739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "508:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", - "typeString": "contract Migrations" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "486:45:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 744, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "563:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 741, - "name": "upgraded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 736, - "src": "541:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$749", - "typeString": "contract Migrations" - } - }, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setCompleted", - "nodeType": "MemberAccess", - "referencedDeclaration": 728, - "src": "541:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "541:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "541:47:1" - } - ] - }, - "documentation": null, - "id": 748, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 733, - "modifierName": { - "argumentTypes": null, - "id": 732, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 707, - "src": "461:10:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "461:10:1" - } - ], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 730, - "name": "new_address", - "nodeType": "VariableDeclaration", - "scope": 748, - "src": "417:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 729, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "416:21:1" - }, - "payable": false, - "returnParameters": { - "id": 734, - "nodeType": "ParameterList", - "parameters": [], - "src": "476:0:1" - }, - "scope": 749, - "src": "400:195:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 750, - "src": "25:572:1" - } - ], - "src": "0:598:1" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x047349c3f4b2c430c4e9f56be4089dee0e4e0a53", - "transactionHash": "0x2fb02eb9fe8f01ee1cacffad5f8f9799b16ab8dd24526154ddace9274181d30b" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0xe78a0f7e598cc8b0bb87894b0f60dd2a88d6a8ab", - "transactionHash": "0xaedda9523231e6436096a02f29777285f5b45e35532d888872fa86d24e3d854d" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.425Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/MockContract.json b/safe-contracts/build/contracts/MockContract.json deleted file mode 100644 index 899d54de..00000000 --- a/safe-contracts/build/contracts/MockContract.json +++ /dev/null @@ -1,28456 +0,0 @@ -{ - "contractName": "MockContract", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "MOCKS_LIST_END_HASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "MOCKS_LIST_START", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "MOCKS_LIST_END", - "outputs": [ - { - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_ANY_MOCKS", - "outputs": [ - { - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "bytes" - } - ], - "name": "givenAnyReturn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "bool" - } - ], - "name": "givenAnyReturnBool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "uint256" - } - ], - "name": "givenAnyReturnUint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "address" - } - ], - "name": "givenAnyReturnAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "givenAnyRevert", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "message", - "type": "string" - } - ], - "name": "givenAnyRevertWithMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "givenAnyRunOutOfGas", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "bytes" - } - ], - "name": "givenCalldataReturn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "bool" - } - ], - "name": "givenCalldataReturnBool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "uint256" - } - ], - "name": "givenCalldataReturnUint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "address" - } - ], - "name": "givenCalldataReturnAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "bytes" - } - ], - "name": "givenMethodReturn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "bool" - } - ], - "name": "givenMethodReturnBool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "uint256" - } - ], - "name": "givenMethodReturnUint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "address" - } - ], - "name": "givenMethodReturnAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - } - ], - "name": "givenCalldataRevert", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - } - ], - "name": "givenMethodRevert", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "message", - "type": "string" - } - ], - "name": "givenCalldataRevertWithMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "message", - "type": "string" - } - ], - "name": "givenMethodRevertWithMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - } - ], - "name": "givenCalldataRunOutOfGas", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - } - ], - "name": "givenMethodRunOutOfGas", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "invocationCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - } - ], - "name": "invocationCountForMethod", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - } - ], - "name": "invocationCountForCalldata", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "reset", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f01000000000000000000000000000000000000000000000000000000000000006000191660001916815260200190815260200160002090805190602001906200009792919062000168565b507f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c01000000000000000000000000000000000000000000000000000000009004021790555062000217565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001ab57805160ff1916838001178555620001dc565b82800160010185558215620001dc579182015b82811115620001db578251825591602001919060010190620001be565b5b509050620001eb9190620001ef565b5090565b6200021491905b8082111562000210576000816000905550600101620001f6565b5090565b90565b6132ad80620002276000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a20119f14610a6c57806321fed4d614610a975780632ed238dc14610ad257806336ff0ee514610b055780633956dc6b14610b345780634937c4f614610b4b578063586984a414610b9a5780635a3855ab14610be95780636193659414610c3057806367aad04a14610c83578063682b479714610cb657806368ab6f2f14610cf95780636f40075614610d345780637cd96ee414610d7b57806387abab6514610e0b5780639a1dc86b14610e465780639eaeed7514610e99578063aa788c5514610eec578063af21ac7814610f27578063b3901f2914610f54578063c6ee167f14610faf578063cf11ff5d14611002578063d6fe97781461105d578063d73ca0ac14611098578063d826f88f146110dd578063e211b8a5146110f4578063eb861f691461110b578063f07da22914611146578063f5afa9c1146111af575b6000606060003591506001600281111561018b57fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff1660028111156101ca57fe5b14156102b45760036000366040518083838082843782019150509250505090815260200160405180910390206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156102a55780601f1061027a576101008083540402835291602001916102a5565b820191906000526020600020905b81548152906001019060200180831161028857829003601f168201915b50509250505060405180910390fd5b6002808111156102c057fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff1660028111156102ff57fe5b141561030e5761030d6111f4565b5b60026000366040518083838082843782019150509250505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103c85780601f1061039d576101008083540402835291602001916103c8565b820191906000526020600020905b8154815290600101906020018083116103ab57829003601f168201915b505050505090506000815114156106d757600160028111156103e657fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561045057fe5b14156105655760086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156105565780601f1061052b57610100808354040283529160200191610556565b820191906000526020600020905b81548152906001019060200180831161053957829003601f168201915b50509250505060405180910390fd5b60028081111561057157fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156105db57fe5b14156105ea576105e96111f4565b5b60076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106cf5780601f106106a4576101008083540402835291602001916106cf565b820191906000526020600020905b8154815290600101906020018083116106b257829003601f168201915b505050505090505b6000815114156108a357600160028111156106ee57fe5b600a60009054906101000a900460ff16600281111561070957fe5b14156107cf57600c6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156107c05780601f10610795576101008083540402835291602001916107c0565b820191906000526020600020905b8154815290600101906020018083116107a357829003601f168201915b50509250505060405180910390fd5b6002808111156107db57fe5b600a60009054906101000a900460ff1660028111156107f657fe5b1415610805576108046111f4565b5b600b8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089b5780601f106108705761010080835404028352916020019161089b565b820191906000526020600020905b81548152906001019060200180831161087e57829003601f168201915b505050505090505b6001600d60008282540192505081905550600160096000600e548560405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156109575780518252602082019150602081019050602083039250610932565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008282540192505081905550600160046000600e5460003660405160200180848152602001838380828437820191505093505050506040516020818303038152906040526040518082805190602001908083835b602083101515610a1457805182526020820191506020810190506020830392506109ef565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008282540192505081905550805181602001f35b348015610a7857600080fd5b50610a81611219565b6040518082815260200191505060405180910390f35b348015610aa357600080fd5b50610ad0600480360381019080803590602001908201803590602001919091929391929390505050611223565b005b348015610ade57600080fd5b50610ae76112a9565b60405180826000191660001916815260200191505060405180910390f35b348015610b1157600080fd5b50610b32600480360381019080803515159060200190929190505050611344565b005b348015610b4057600080fd5b50610b4961136f565b005b348015610b5757600080fd5b50610b84600480360381019080803590602001908201803590602001919091929391929390505050611395565b6040518082815260200191505060405180910390f35b348015610ba657600080fd5b50610bd36004803603810190808035906020019082018035906020019190919293919293905050506114c3565b6040518082815260200191505060405180910390f35b348015610bf557600080fd5b50610c2e60048036038101908080359060200190820180359060200191909192939192939080351515906020019092919050505061157b565b005b348015610c3c57600080fd5b50610c816004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506115db565b005b348015610c8f57600080fd5b50610c9861164f565b60405180826000191660001916815260200191505060405180910390f35b348015610cc257600080fd5b50610cf7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611673565b005b348015610d0557600080fd5b50610d32600480360381019080803590602001908201803590602001919091929391929390505050611687565b005b348015610d4057600080fd5b50610d79600480360381019080803590602001908201803590602001919091929391929390803515159060200190929190505050611747565b005b348015610d8757600080fd5b50610d906117a7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dd0578082015181840152602081019050610db5565b50505050905090810190601f168015610dfd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e1757600080fd5b50610e446004803603810190808035906020019082018035906020019190919293919293905050506117e0565b005b348015610e5257600080fd5b50610e9760048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061181a565b005b348015610ea557600080fd5b50610eea60048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061193d565b005b348015610ef857600080fd5b50610f256004803603810190808035906020019082018035906020019190919293919293905050506119f9565b005b348015610f3357600080fd5b50610f5260048036038101908080359060200190929190505050611ab9565b005b348015610f6057600080fd5b50610fad600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611acd565b005b348015610fbb57600080fd5b50611000600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611b16565b005b34801561100e57600080fd5b5061105b600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b8a565b005b34801561106957600080fd5b50611096600480360381019080803590602001908201803590602001919091929391929390505050611bd3565b005b3480156110a457600080fd5b506110db60048036038101908080359060200190820180359060200191909192939192939080359060200190929190505050611c12565b005b3480156110e957600080fd5b506110f2611c5b565b005b34801561110057600080fd5b5061110961269b565b005b34801561111757600080fd5b506111446004803603810190808035906020019082018035906020019190919293919293905050506126e8565b005b34801561115257600080fd5b5061115b6127b7565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156111bb57600080fd5b506111f2600480360381019080803590602001908201803590602001919091929391929390803590602001909291905050506127db565b005b60005b600115611216576060600060c060008060066107d05a03f190506111f7565b50565b6000600d54905090565b60026001838360405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561126557fe5b02179055506112a582828080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b5050565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b60208310151561131457805182526020820191506020810190506020830392506112ef565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081565b600081611352576000611355565b60015b60ff16905061136b6113668261298a565b6129ce565b5050565b6002600a60006101000a81548160ff0219169083600281111561138e57fe5b0217905550565b6000806113d384848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b905060096000600e548360405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156114765780518252602082019150602081019050602083039250611451565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019166000191681526020019081526020016000205491505092915050565b600060046000600e54858560405160200180848152602001838380828437820191505093505050506040516020818303038152906040526040518082805190602001908083835b60208310151561152f578051825260208201915060208101905060208303925061150a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002054905092915050565b60008161158957600061158c565b60015b60ff1690506115d584848080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506115d08361298a565b612b02565b50505050565b61164984848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612bf6565b50505050565b7f010000000000000000000000000000000000000000000000000000000000000081565b61168461167f82612d10565b6129ce565b50565b60006116c483838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600260066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561173457fe5b021790555061174281612d42565b505050565b600081611755576000611758565b60015b60ff1690506117a184848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061179c8361298a565b612b02565b50505050565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525081565b6001600a60006101000a81548160ff021916908360028111156117ff57fe5b02179055508181600c9190611815929190612fd5565b505050565b600061185785858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360028111156118c757fe5b0217905550828260086000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020919061192c929190612fd5565b5061193681612d42565b5050505050565b600180858560405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561197e57fe5b021790555081816003868660405180838380828437820191505092505050908152602001604051809103902091906119b7929190612fd5565b506119f384848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b50505050565b6000611a3683838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115611aa657fe5b0217905550611ab481612d42565b505050565b611aca611ac58261298a565b6129ce565b50565b611b1183838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611b0c83612d10565b612b02565b505050565b611b8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612b02565b50505050565b611bce83838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611bc983612d10565b612b02565b505050565b611c0e82828080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506129ce565b5050565b611c5683838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611c518361298a565b612b02565b505050565b606060008060008060007f0100000000000000000000000000000000000000000000000000000000000000600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d305780601f10611d0557610100808354040283529160200191611d30565b820191906000526020600020905b815481529060010190602001808311611d1357829003601f168201915b50505050509350836040518082805190602001908083835b602083101515611d6d5780518252602082019150602081019050602083039250611d48565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092505b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b602083101515611e085780518252602082019150602081019050602083039250611de3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191683600019161415156121505760006001856040518082805190602001908083835b602083101515611e7f5780518252602082019150602081019050602083039250611e5a565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115611ecd57fe5b021790555060206040519081016040528060008152506002856040518082805190602001908083835b602083101515611f1b5780518252602082019150602081019050602083039250611ef6565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611f61929190613055565b5060206040519081016040528060008152506003856040518082805190602001908083835b602083101515611fab5780518252602082019150602081019050602083039250611f86565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611ff19291906130d5565b5060008084600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120a05780601f10612075576101008083540402835291602001916120a0565b820191906000526020600020905b81548152906001019060200180831161208357829003601f168201915b505050505093506020604051908101604052806000815250600080856000191660001916815260200190815260200160002090805190602001906120e5929190613055565b50836040518082805190602001908083835b60208310151561211c57805182526020820191506020810190506020830392506120f7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250611d9d565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f01000000000000000000000000000000000000000000000000000000000000006000191660001916815260200190815260200160002090805190602001906121d3929190613155565b50600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000291505b7f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561256757819050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561234a57fe5b0217905550602060405190810160405280600081525060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906123c4929190613055565b50602060405190810160405280600081525060086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020908051906020019061243a9291906130d5565b5060056000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c010000000000000000000000000000000000000000000000000000000002915060007c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550612272565b7f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055506020604051908101604052806000815250600b9080519060200190612657929190613055565b506000600a60006101000a81548160ff0219169083600281111561267757fe5b02179055506000600d819055506001600e6000828254019250508190555050505050565b6001600a60006101000a81548160ff021916908360028111156126ba57fe5b02179055506020604051908101604052806000815250600c90805190602001906126e59291906130d5565b50565b600180838360405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561272957fe5b021790555060206040519081016040528060008152506003838360405180838380828437820191505092505050908152602001604051809103902090805190602001906127779291906130d5565b506127b382828080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b5050565b7f010000000000000000000000000000000000000000000000000000000000000081565b61281f83838080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061281a8361298a565b612b02565b505050565b6000816040518082805190602001908083835b60208310151561285c5780518252602082019150602081019050602083039250612837565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600080600083600019166000191681526020019081526020016000208054600181600116156101000203166002900490501415612986576000807f010000000000000000000000000000000000000000000000000000000000000060001916600019168152602001908152602001600020600080836000191660001916815260200190815260200160002090805460018160011615610100020316600290046129359291906131d5565b50816000807f0100000000000000000000000000000000000000000000000000000000000000600019166000191681526020019081526020016000209080519060200190612984929190613155565b505b5050565b606060206040519080825280601f01601f1916602001820160405280156129c05781602001602082028038833980820191505090505b509050816020820152919050565b6000600a60006101000a81548160ff021916908360028111156129ed57fe5b021790555080600b9080519060200190612a08929190613155565b5050565b60008060008090505b6004811015612af8576008810260ff7f0100000000000000000000000000000000000000000000000000000000000000028583815181101515612a5457fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060020a9004821791508080600101915050612a15565b8192505050919050565b6000612b0d83612a0c565b9050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115612b7d57fe5b02179055508160076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190612be7929190613155565b50612bf181612d42565b505050565b60006001836040518082805190602001908083835b602083101515612c305780518252602082019150602081019050602083039250612c0b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115612c7e57fe5b0217905550806002836040518082805190602001908083835b602083101515612cbc5780518252602082019150602081019050602083039250612c97565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190612d02929190613155565b50612d0c82612824565b5050565b606060405182741400000000000000000000000000000000000000001860148201526034810160405280915050919050565b60007c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415612fd257600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c01000000000000000000000000000000000000000000000000000000009004021790555080600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055505b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061301657803560ff1916838001178555613044565b82800160010185558215613044579182015b82811115613043578235825591602001919060010190613028565b5b509050613051919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061309657805160ff19168380011785556130c4565b828001600101855582156130c4579182015b828111156130c35782518255916020019190600101906130a8565b5b5090506130d1919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061311657805160ff1916838001178555613144565b82800160010185558215613144579182015b82811115613143578251825591602001919060010190613128565b5b509050613151919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061319657805160ff19168380011785556131c4565b828001600101855582156131c4579182015b828111156131c35782518255916020019190600101906131a8565b5b5090506131d1919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061320e578054855561324b565b8280016001018555821561324b57600052602060002091601f016020900482015b8281111561324a57825482559160010191906001019061322f565b5b509050613258919061325c565b5090565b61327e91905b8082111561327a576000816000905550600101613262565b5090565b905600a165627a7a723058207c38230b81180ba3e31c43529a6ce1803521c383ed5e28844c054a59afa495110029", - "deployedBytecode": "0x608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a20119f14610a6c57806321fed4d614610a975780632ed238dc14610ad257806336ff0ee514610b055780633956dc6b14610b345780634937c4f614610b4b578063586984a414610b9a5780635a3855ab14610be95780636193659414610c3057806367aad04a14610c83578063682b479714610cb657806368ab6f2f14610cf95780636f40075614610d345780637cd96ee414610d7b57806387abab6514610e0b5780639a1dc86b14610e465780639eaeed7514610e99578063aa788c5514610eec578063af21ac7814610f27578063b3901f2914610f54578063c6ee167f14610faf578063cf11ff5d14611002578063d6fe97781461105d578063d73ca0ac14611098578063d826f88f146110dd578063e211b8a5146110f4578063eb861f691461110b578063f07da22914611146578063f5afa9c1146111af575b6000606060003591506001600281111561018b57fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff1660028111156101ca57fe5b14156102b45760036000366040518083838082843782019150509250505090815260200160405180910390206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156102a55780601f1061027a576101008083540402835291602001916102a5565b820191906000526020600020905b81548152906001019060200180831161028857829003601f168201915b50509250505060405180910390fd5b6002808111156102c057fe5b600160003660405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff1660028111156102ff57fe5b141561030e5761030d6111f4565b5b60026000366040518083838082843782019150509250505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103c85780601f1061039d576101008083540402835291602001916103c8565b820191906000526020600020905b8154815290600101906020018083116103ab57829003601f168201915b505050505090506000815114156106d757600160028111156103e657fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561045057fe5b14156105655760086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156105565780601f1061052b57610100808354040283529160200191610556565b820191906000526020600020905b81548152906001019060200180831161053957829003601f168201915b50509250505060405180910390fd5b60028081111561057157fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156105db57fe5b14156105ea576105e96111f4565b5b60076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106cf5780601f106106a4576101008083540402835291602001916106cf565b820191906000526020600020905b8154815290600101906020018083116106b257829003601f168201915b505050505090505b6000815114156108a357600160028111156106ee57fe5b600a60009054906101000a900460ff16600281111561070957fe5b14156107cf57600c6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156107c05780601f10610795576101008083540402835291602001916107c0565b820191906000526020600020905b8154815290600101906020018083116107a357829003601f168201915b50509250505060405180910390fd5b6002808111156107db57fe5b600a60009054906101000a900460ff1660028111156107f657fe5b1415610805576108046111f4565b5b600b8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089b5780601f106108705761010080835404028352916020019161089b565b820191906000526020600020905b81548152906001019060200180831161087e57829003601f168201915b505050505090505b6001600d60008282540192505081905550600160096000600e548560405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156109575780518252602082019150602081019050602083039250610932565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008282540192505081905550600160046000600e5460003660405160200180848152602001838380828437820191505093505050506040516020818303038152906040526040518082805190602001908083835b602083101515610a1457805182526020820191506020810190506020830392506109ef565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060008282540192505081905550805181602001f35b348015610a7857600080fd5b50610a81611219565b6040518082815260200191505060405180910390f35b348015610aa357600080fd5b50610ad0600480360381019080803590602001908201803590602001919091929391929390505050611223565b005b348015610ade57600080fd5b50610ae76112a9565b60405180826000191660001916815260200191505060405180910390f35b348015610b1157600080fd5b50610b32600480360381019080803515159060200190929190505050611344565b005b348015610b4057600080fd5b50610b4961136f565b005b348015610b5757600080fd5b50610b84600480360381019080803590602001908201803590602001919091929391929390505050611395565b6040518082815260200191505060405180910390f35b348015610ba657600080fd5b50610bd36004803603810190808035906020019082018035906020019190919293919293905050506114c3565b6040518082815260200191505060405180910390f35b348015610bf557600080fd5b50610c2e60048036038101908080359060200190820180359060200191909192939192939080351515906020019092919050505061157b565b005b348015610c3c57600080fd5b50610c816004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506115db565b005b348015610c8f57600080fd5b50610c9861164f565b60405180826000191660001916815260200191505060405180910390f35b348015610cc257600080fd5b50610cf7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611673565b005b348015610d0557600080fd5b50610d32600480360381019080803590602001908201803590602001919091929391929390505050611687565b005b348015610d4057600080fd5b50610d79600480360381019080803590602001908201803590602001919091929391929390803515159060200190929190505050611747565b005b348015610d8757600080fd5b50610d906117a7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dd0578082015181840152602081019050610db5565b50505050905090810190601f168015610dfd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e1757600080fd5b50610e446004803603810190808035906020019082018035906020019190919293919293905050506117e0565b005b348015610e5257600080fd5b50610e9760048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061181a565b005b348015610ea557600080fd5b50610eea60048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061193d565b005b348015610ef857600080fd5b50610f256004803603810190808035906020019082018035906020019190919293919293905050506119f9565b005b348015610f3357600080fd5b50610f5260048036038101908080359060200190929190505050611ab9565b005b348015610f6057600080fd5b50610fad600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611acd565b005b348015610fbb57600080fd5b50611000600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611b16565b005b34801561100e57600080fd5b5061105b600480360381019080803590602001908201803590602001919091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b8a565b005b34801561106957600080fd5b50611096600480360381019080803590602001908201803590602001919091929391929390505050611bd3565b005b3480156110a457600080fd5b506110db60048036038101908080359060200190820180359060200191909192939192939080359060200190929190505050611c12565b005b3480156110e957600080fd5b506110f2611c5b565b005b34801561110057600080fd5b5061110961269b565b005b34801561111757600080fd5b506111446004803603810190808035906020019082018035906020019190919293919293905050506126e8565b005b34801561115257600080fd5b5061115b6127b7565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156111bb57600080fd5b506111f2600480360381019080803590602001908201803590602001919091929391929390803590602001909291905050506127db565b005b60005b600115611216576060600060c060008060066107d05a03f190506111f7565b50565b6000600d54905090565b60026001838360405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561126557fe5b02179055506112a582828080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b5050565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b60208310151561131457805182526020820191506020810190506020830392506112ef565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081565b600081611352576000611355565b60015b60ff16905061136b6113668261298a565b6129ce565b5050565b6002600a60006101000a81548160ff0219169083600281111561138e57fe5b0217905550565b6000806113d384848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b905060096000600e548360405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040526040518082805190602001908083835b6020831015156114765780518252602082019150602081019050602083039250611451565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019166000191681526020019081526020016000205491505092915050565b600060046000600e54858560405160200180848152602001838380828437820191505093505050506040516020818303038152906040526040518082805190602001908083835b60208310151561152f578051825260208201915060208101905060208303925061150a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002054905092915050565b60008161158957600061158c565b60015b60ff1690506115d584848080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506115d08361298a565b612b02565b50505050565b61164984848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612bf6565b50505050565b7f010000000000000000000000000000000000000000000000000000000000000081565b61168461167f82612d10565b6129ce565b50565b60006116c483838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600260066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561173457fe5b021790555061174281612d42565b505050565b600081611755576000611758565b60015b60ff1690506117a184848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061179c8361298a565b612b02565b50505050565b6040805190810160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525081565b6001600a60006101000a81548160ff021916908360028111156117ff57fe5b02179055508181600c9190611815929190612fd5565b505050565b600061185785858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360028111156118c757fe5b0217905550828260086000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020919061192c929190612fd5565b5061193681612d42565b5050505050565b600180858560405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561197e57fe5b021790555081816003868660405180838380828437820191505092505050908152602001604051809103902091906119b7929190612fd5565b506119f384848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b50505050565b6000611a3683838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612a0c565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115611aa657fe5b0217905550611ab481612d42565b505050565b611aca611ac58261298a565b6129ce565b50565b611b1183838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611b0c83612d10565b612b02565b505050565b611b8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612b02565b50505050565b611bce83838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611bc983612d10565b612b02565b505050565b611c0e82828080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506129ce565b5050565b611c5683838080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611c518361298a565b612b02565b505050565b606060008060008060007f0100000000000000000000000000000000000000000000000000000000000000600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d305780601f10611d0557610100808354040283529160200191611d30565b820191906000526020600020905b815481529060010190602001808311611d1357829003601f168201915b50505050509350836040518082805190602001908083835b602083101515611d6d5780518252602082019150602081019050602083039250611d48565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092505b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b602083101515611e085780518252602082019150602081019050602083039250611de3565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191683600019161415156121505760006001856040518082805190602001908083835b602083101515611e7f5780518252602082019150602081019050602083039250611e5a565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115611ecd57fe5b021790555060206040519081016040528060008152506002856040518082805190602001908083835b602083101515611f1b5780518252602082019150602081019050602083039250611ef6565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611f61929190613055565b5060206040519081016040528060008152506003856040518082805190602001908083835b602083101515611fab5780518252602082019150602081019050602083039250611f86565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611ff19291906130d5565b5060008084600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120a05780601f10612075576101008083540402835291602001916120a0565b820191906000526020600020905b81548152906001019060200180831161208357829003601f168201915b505050505093506020604051908101604052806000815250600080856000191660001916815260200190815260200160002090805190602001906120e5929190613055565b50836040518082805190602001908083835b60208310151561211c57805182526020820191506020810190506020830392506120f7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250611d9d565b6040805190810160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f01000000000000000000000000000000000000000000000000000000000000006000191660001916815260200190815260200160002090805190602001906121d3929190613155565b50600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000291505b7f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561256757819050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561234a57fe5b0217905550602060405190810160405280600081525060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906123c4929190613055565b50602060405190810160405280600081525060086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020908051906020019061243a9291906130d5565b5060056000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c010000000000000000000000000000000000000000000000000000000002915060007c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c010000000000000000000000000000000000000000000000000000000090040217905550612272565b7f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055506020604051908101604052806000815250600b9080519060200190612657929190613055565b506000600a60006101000a81548160ff0219169083600281111561267757fe5b02179055506000600d819055506001600e6000828254019250508190555050505050565b6001600a60006101000a81548160ff021916908360028111156126ba57fe5b02179055506020604051908101604052806000815250600c90805190602001906126e59291906130d5565b50565b600180838360405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561272957fe5b021790555060206040519081016040528060008152506003838360405180838380828437820191505092505050908152602001604051809103902090805190602001906127779291906130d5565b506127b382828080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050612824565b5050565b7f010000000000000000000000000000000000000000000000000000000000000081565b61281f83838080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061281a8361298a565b612b02565b505050565b6000816040518082805190602001908083835b60208310151561285c5780518252602082019150602081019050602083039250612837565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050600080600083600019166000191681526020019081526020016000208054600181600116156101000203166002900490501415612986576000807f010000000000000000000000000000000000000000000000000000000000000060001916600019168152602001908152602001600020600080836000191660001916815260200190815260200160002090805460018160011615610100020316600290046129359291906131d5565b50816000807f0100000000000000000000000000000000000000000000000000000000000000600019166000191681526020019081526020016000209080519060200190612984929190613155565b505b5050565b606060206040519080825280601f01601f1916602001820160405280156129c05781602001602082028038833980820191505090505b509050816020820152919050565b6000600a60006101000a81548160ff021916908360028111156129ed57fe5b021790555080600b9080519060200190612a08929190613155565b5050565b60008060008090505b6004811015612af8576008810260ff7f0100000000000000000000000000000000000000000000000000000000000000028583815181101515612a5457fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060020a9004821791508080600101915050612a15565b8192505050919050565b6000612b0d83612a0c565b9050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115612b7d57fe5b02179055508160076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190612be7929190613155565b50612bf181612d42565b505050565b60006001836040518082805190602001908083835b602083101515612c305780518252602082019150602081019050602083039250612c0b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115612c7e57fe5b0217905550806002836040518082805190602001908083835b602083101515612cbc5780518252602082019150602081019050602083039250612c97565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190612d02929190613155565b50612d0c82612824565b5050565b606060405182741400000000000000000000000000000000000000001860148201526034810160405280915050919050565b60007c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415612fd257600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a90047c01000000000000000000000000000000000000000000000000000000000260056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c01000000000000000000000000000000000000000000000000000000009004021790555080600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff02191690837c0100000000000000000000000000000000000000000000000000000000900402179055505b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061301657803560ff1916838001178555613044565b82800160010185558215613044579182015b82811115613043578235825591602001919060010190613028565b5b509050613051919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061309657805160ff19168380011785556130c4565b828001600101855582156130c4579182015b828111156130c35782518255916020019190600101906130a8565b5b5090506130d1919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061311657805160ff1916838001178555613144565b82800160010185558215613144579182015b82811115613143578251825591602001919060010190613128565b5b509050613151919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061319657805160ff19168380011785556131c4565b828001600101855582156131c4579182015b828111156131c35782518255916020019190600101906131a8565b5b5090506131d1919061325c565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061320e578054855561324b565b8280016001018555821561324b57600052602060002091601f016020900482015b8281111561324a57825482559160010191906001019061322f565b5b509050613258919061325c565b5090565b61327e91905b8082111561327a576000816000905550600101613262565b5090565b905600a165627a7a723058207c38230b81180ba3e31c43529a6ce1803521c383ed5e28844c054a59afa495110029", - "sourceMap": "3453:8735:25:-;;;4427:135;8:9:-1;5:2;;;30:1;27;20:12;5:2;4427:135:25;4486:14;;;;;;;;;;;;;;;;;;4452:13;:31;4466:16;4452:31;;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:::i;:::-;;4540:18;4504:13;:33;4518:18;4504:33;;;;;;;;;;;;;;;;;;:54;;;;;;;;;;;;;;;;;;;3453:8735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "3453:8735:25:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11012:15;11305:19;11070:1;11057:15;11045:27;;11158:15;11127:46;;;;;;;;:17;11145:8;;11127:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;11123:101;;;11187:21;11209:8;;11187:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11180:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11123:101;11262:17;11231:48;;;;;;;;:17;11249:8;;11231:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;;;11227:75;;;11286:11;:9;:11::i;:::-;11227:75;11327:20;11348:8;;11327:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11305:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11419:1;11402:6;:13;:18;11398:262;;;11462:15;11431:46;;;;;;;;:17;:27;11449:8;11431:27;;;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;11427:104;;;11492:22;:32;11515:8;11492:32;;;;;;;;;;;;;;;;;11485:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11427:104;11570:17;11539:48;;;;;;;;:17;:27;11557:8;11539:27;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;;;11535:77;;;11595:11;:9;:11::i;:::-;11535:77;11625:20;:30;11646:8;11625:30;;;;;;;;;;;;;;;;;11616:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11398:262;11722:1;11705:6;:13;:18;11701:218;;;11754:15;11734:35;;;;;;;;:16;;;;;;;;;;;:35;;;;;;;;;11730:82;;;11784:21;11777:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11730:82;11840:17;11820:37;;;;;;;;:16;;;;;;;;;;;:37;;;;;;;;;11816:66;;;11865:11;:9;:11::i;:::-;11816:66;11895:19;11886:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11701:218;11961:1;11946:11;;:16;;;;;;;;;;;12040:1;11966:19;:70;12013:10;;12025:8;11996:38;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11996:38:25;;;11986:49;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11986:49:25;;;;;;;;;;;;;;;;11966:70;;;;;;;;;;;;;;;;;;:75;;;;;;;;;;;12119:1;12045:19;:70;12092:10;;12104:8;;12075:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12075:38:25;;;12065:49;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12065:49:25;;;;;;;;;;;;;;;;12045:70;;;;;;;;;;;;;;;;;;:75;;;;;;;;;;;12171:6;12165:13;12156:6;12150:4;12146:17;12139:40;8488:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8488:77:25;;;;;;;;;;;;;;;;;;;;;;;8174:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8174:133:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3642:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3642:71:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5248:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5248:126:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5839:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5839:84:25;;;;;;8568:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8568:192:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8763:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8763:153:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6227:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6227:152:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6113:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6113:111:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3541:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3541:50:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5479:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5479:107:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;8310:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8310:175:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6985:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6985:150:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3594:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3594:45:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3594:45:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5699:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5699:137:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7931:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7931:240:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7734:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7734:194:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7562:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7562:169:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5377:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5377:99:25;;;;;;;;;;;;;;;;;;;;;;;;;;6509:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6509:133:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6876:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6876:106:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7263:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7263:131:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5163:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5163:82:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6382:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6382:124:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8919:1291;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8919:1291:25;;;;;;5589:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5589:107:25;;;;;;7397:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7397:162:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3716:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3716:51:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7138:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7138:122:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10213:186;10263:6;10246:150;10252:4;10246:150;;;10382:4;10377:3;10371:4;10366:3;10363:1;10360;10353:4;10348:3;10344:14;10339:48;10334:53;;10283:109;;;10213:186;:::o;8488:77::-;8533:4;8550:11;;8543:18;;8488:77;:::o;8174:133::-;8259:17;8233;8251:4;;8233:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;8280:23;8298:4;;8280:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:23::i;:::-;8174:133;;:::o;3642:71::-;3698:14;;;;;;;;;;;;;;;;;;3688:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3688:25:25;;;;;;;;;;;;;;;;3642:71;:::o;5248:126::-;5304:9;5316:8;:16;;5331:1;5316:16;;;5327:1;5316:16;5304:28;;;;5336:34;5352:17;5364:4;5352:11;:17::i;:::-;5336:15;:34::i;:::-;5248:126;;:::o;5839:84::-;5902:17;5883:16;;:36;;;;;;;;;;;;;;;;;;;;;;;;5839:84::o;8568:192::-;8632:4;8642:13;8658:19;8672:4;;8658:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:19::i;:::-;8642:35;;8688:19;:68;8735:10;;8747:6;8718:36;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8718:36:25;;;8708:47;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8708:47:25;;;;;;;;;;;;;;;;8688:68;;;;;;;;;;;;;;;;;;8681:75;;8568:192;;;;;:::o;8763:153::-;8829:4;8846:19;:66;8893:10;;8905:4;;8876:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8876:34:25;;;8866:45;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8866:45:25;;;;;;;;;;;;;;;;8846:66;;;;;;;;;;;;;;;;;;8839:73;;8763:153;;;;:::o;6227:152::-;6300:9;6312:8;:16;;6327:1;6312:16;;;6323:1;6312:16;6300:28;;;;6332:43;6351:4;;6332:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6357:17;6369:4;6357:11;:17::i;:::-;6332:18;:43::i;:::-;6227:152;;;;:::o;6113:111::-;6184:36;6205:4;;6184:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6211:8;;6184:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:20;:36::i;:::-;6113:111;;;;:::o;3541:50::-;;;:::o;5479:107::-;5541:41;5557:24;5572:8;5557:14;:24::i;:::-;5541:15;:41::i;:::-;5479:107;:::o;8310:175::-;8367:13;8383:19;8397:4;;8383:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:19::i;:::-;8367:35;;8434:17;8406;:25;8424:6;8406:25;;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;;;;;;;8455:25;8473:6;8455:17;:25::i;:::-;8310:175;;;:::o;6985:150::-;7056:9;7068:8;:16;;7083:1;7068:16;;;7079:1;7068:16;7056:28;;;;7088:43;7107:4;;7088:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7113:17;7125:4;7113:11;:17::i;:::-;7088:18;:43::i;:::-;6985:150;;;;:::o;3594:45::-;;;;;;;;;;;;;;;;;;;;:::o;5699:137::-;5782:15;5763:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;5825:7;;5801:21;:31;;;;;;;:::i;:::-;;5699:137;;:::o;7931:240::-;8010:13;8026:19;8040:4;;8026:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:19::i;:::-;8010:35;;8077:15;8049:17;:25;8067:6;8049:25;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;8129:7;;8096:22;:30;8119:6;8096:30;;;;;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;8140:25;8158:6;8140:17;:25::i;:::-;7931:240;;;;;:::o;7734:194::-;7841:15;7815:17;7833:4;;7815:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;;;;;7890:7;;7860:21;7882:4;;7860:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;7901:23;7919:4;;7901:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:23::i;:::-;7734:194;;;;:::o;7562:169::-;7614:13;7630:19;7644:4;;7630:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:19::i;:::-;7614:35;;7681:15;7653:17;:25;7671:6;7653:25;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;7700:25;7718:6;7700:17;:25::i;:::-;7562:169;;;:::o;5377:99::-;5433:38;5449:21;5461:8;5449:11;:21::i;:::-;5433:15;:38::i;:::-;5377:99;:::o;6509:133::-;6588:50;6607:4;;6588:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6613:24;6628:8;6613:14;:24::i;:::-;6588:18;:50::i;:::-;6509:133;;;:::o;6876:106::-;6944:34;6963:4;;6944:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6969:8;;6944:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;:34::i;:::-;6876:106;;;;:::o;7263:131::-;7340:50;7359:4;;7340:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7365:24;7380:8;7365:14;:24::i;:::-;7340:18;:50::i;:::-;7263:131;;;:::o;5163:82::-;5216:25;5232:8;;5216:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;:25::i;:::-;5163:82;;:::o;6382:124::-;6455:47;6474:4;;6455:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6480:21;6492:8;6480:11;:21::i;:::-;6455:18;:47::i;:::-;6382:124;;;:::o;8919:1291::-;8984:21;9043:16;9613:18;9717:21;9008:13;:31;9022:16;9008:31;;;;;;;;;;;;;;;;;8984:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9072:8;9062:19;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9062:19:25;;;;;;;;;;;;;;;;9043:38;;9114:394;3698:14;;;;;;;;;;;;;;;;;;3688:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3688:25:25;;;;;;;;;;;;;;;;9120:31;;;:8;:31;;;;;9114:394;;;9214:15;9184:17;9202:8;9184:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9184:27:25;;;;;;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;;;;;;;9234:38;;;;;;;;;;;;;:20;9255:8;9234:30;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9234:30:25;;;;;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;:::i;:::-;;9277:36;;;;;;;;;;;;;:21;9299:8;9277:31;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9277:31:25;;;;;;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;:::i;:::-;;9359:13;:23;9373:8;9359:23;;;;;;;;;;;;;;;;;9348:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9417:28;;;;;;;;;;;;;:13;:23;9431:8;9417:23;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;:::i;:::-;;9494:8;9484:19;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9484:19:25;;;;;;;;;;;;;;;;9473:30;;9114:394;;;9561:14;;;;;;;;;;;;;;;;;;9527:13;:31;9541:16;9527:31;;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:::i;:::-;;9634:13;:33;9648:18;9634:33;;;;;;;;;;;;;;;;;;;;;;;;;;;9613:54;;9671:357;9692:18;9677:33;;;:11;:33;;;;;9671:357;;;9741:11;9717:35;;9793:15;9757:17;:33;9775:14;9757:33;;;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;;;;;;;9813:44;;;;;;;;;;;;;:20;:36;9834:14;9813:36;;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;:::i;:::-;;9862:43;;;;;;;;;;;;;:22;:38;9885:14;9862:38;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;:::i;:::-;;9924:13;:29;9938:14;9924:29;;;;;;;;;;;;;;;;;;;;;;;;;;;9910:43;;10020:3;9988:35;;:13;:29;10002:14;9988:29;;;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;;9671:357;;;10083:18;10047:13;:33;10061:18;10047:33;;;;;;;;;;;;;;;;;;:54;;;;;;;;;;;;;;;;;;;10106:24;;;;;;;;;;;;;:19;:24;;;;;;;;;;;;:::i;:::-;;10153:15;10134:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;10186:1;10172:11;:15;;;;10205:1;10191:10;;:15;;;;;;;;;;;8919:1291;;;;:::o;5589:107::-;5647:15;5628:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;5666:26;;;;;;;;;;;;;:21;:26;;;;;;;;;;;;:::i;:::-;;5589:107::o;7397:162::-;7477:15;7451:17;7469:4;;7451:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;;;;;7496:32;;;;;;;;;;;;;:21;7518:4;;7496:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;:::i;:::-;;7532:23;7550:4;;7532:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:23::i;:::-;7397:162;;:::o;3716:51::-;;;:::o;7138:122::-;7209:47;7228:4;;7209:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:21;7246:8;7234:11;:21::i;:::-;7209:18;:47::i;:::-;7138:122;;;:::o;4565:250::-;4623:16;4652:4;4642:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4642:15:25;;;;;;;;;;;;;;;;4623:34;;4699:1;4665:13;:23;4679:8;4665:23;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;:35;4661:151;;;4733:13;:31;4747:16;4733:31;;;;;;;;;;;;;;;;;4707:13;:23;4721:8;4707:23;;;;;;;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4803:4;4769:13;:31;4783:16;4769:31;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;:::i;:::-;;4661:151;4565:250;;:::o;10846:131::-;10900:7;10930:2;10920:13;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;10920:13:25;;;;10916:17;;10970:1;10965:2;10962:1;10958:10;10951:21;10949:25;;;:::o;5034:126::-;5107:15;5088:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;5148:8;5126:19;:30;;;;;;;;;;;;:::i;:::-;;5034:126;:::o;10402:184::-;10456:6;10470:10;10491:6;10500:1;10491:10;;10486:81;10507:1;10503;:5;10486:81;;;10558:1;10554;:5;10544:4;10537:11;;:1;10539;10537:4;;;;;;;;;;;;;;;;;;;;:11;10530:19;;;:30;;;;;;;;10523:37;;;;10510:3;;;;;;;10486:81;;;10579:3;10572:10;;10402:184;;;;;:::o;6645:228::-;6713:13;6729:19;6743:4;6729:13;:19::i;:::-;6713:35;;6780:15;6752:17;:25;6770:6;6752:25;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;6830:8;6799:20;:28;6820:6;6799:28;;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;:::i;:::-;;6842:25;6860:6;6842:17;:25::i;:::-;6645:228;;;:::o;5926:184::-;6023:15;5997:17;6015:4;5997:23;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5997:23:25;;;;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;;;;;6071:8;6042:20;6063:4;6042:26;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6042:26:25;;;;;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;:::i;:::-;;6083:23;6101:4;6083:17;:23::i;:::-;5926:184;;:::o;10589:254::-;10646:7;10696:4;10690:11;10780:1;10734:44;10730:52;10725:2;10722:1;10718:10;10711:72;10813:2;10810:1;10806:10;10800:4;10793:24;10832:1;10827:6;;10670:170;;;;:::o;4818:213::-;4905:3;4878:30;;:13;:23;4892:8;4878:23;;;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;;4874:154;;;4941:13;:33;4955:18;4941:33;;;;;;;;;;;;;;;;;;;;;;;;;;;4915:13;:23;4929:8;4915:23;;;;;;;;;;;;;;;;;;:59;;;;;;;;;;;;;;;;;;;5015:8;4979:13;:33;4993:18;4979:33;;;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;;4874:154;4818:213;:::o;3453:8735::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.4.23;\n\ninterface MockInterface {\n\t/**\n\t * @dev After calling this method, the mock will return `response` when it is called\n\t * with any calldata that is not mocked more specifically below\n\t * (e.g. using givenMethodReturn).\n\t * @param response ABI encoded response that will be returned if method is invoked\n\t */\n\tfunction givenAnyReturn(bytes response) external;\n\tfunction givenAnyReturnBool(bool response) external;\n\tfunction givenAnyReturnUint(uint response) external;\n\tfunction givenAnyReturnAddress(address response) external;\n\n\tfunction givenAnyRevert() external;\n\tfunction givenAnyRevertWithMessage(string message) external;\n\tfunction givenAnyRunOutOfGas() external;\n\n\t/**\n\t * @dev After calling this method, the mock will return `response` when the given\n\t * methodId is called regardless of arguments. If the methodId and arguments\n\t * are mocked more specifically (using `givenMethodAndArguments`) the latter\n\t * will take precedence.\n\t * @param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n\t * @param response ABI encoded response that will be returned if method is invoked\n\t */\n\tfunction givenMethodReturn(bytes method, bytes response) external;\n\tfunction givenMethodReturnBool(bytes method, bool response) external;\n\tfunction givenMethodReturnUint(bytes method, uint response) external;\n\tfunction givenMethodReturnAddress(bytes method, address response) external;\n\n\tfunction givenMethodRevert(bytes method) external;\n\tfunction givenMethodRevertWithMessage(bytes method, string message) external;\n\tfunction givenMethodRunOutOfGas(bytes method) external;\n\n\t/**\n\t * @dev After calling this method, the mock will return `response` when the given\n\t * methodId is called with matching arguments. These exact calldataMocks will take\n\t * precedence over all other calldataMocks.\n\t * @param calldata ABI encoded calldata (methodId and arguments)\n\t * @param response ABI encoded response that will be returned if contract is invoked with calldata\n\t */\n\tfunction givenCalldataReturn(bytes calldata, bytes response) external;\n\tfunction givenCalldataReturnBool(bytes calldata, bool response) external;\n\tfunction givenCalldataReturnUint(bytes calldata, uint response) external;\n\tfunction givenCalldataReturnAddress(bytes calldata, address response) external;\n\n\tfunction givenCalldataRevert(bytes calldata) external;\n\tfunction givenCalldataRevertWithMessage(bytes calldata, string message) external;\n\tfunction givenCalldataRunOutOfGas(bytes calldata) external;\n\n\t/**\n\t * @dev Returns the number of times anything has been called on this mock since last reset\n\t */\n\tfunction invocationCount() external returns (uint);\n\n\t/**\n\t * @dev Returns the number of times the given method has been called on this mock since last reset\n\t * @param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n\t */\n\tfunction invocationCountForMethod(bytes method) external returns (uint);\n\n\t/**\n\t * @dev Returns the number of times this mock has been called with the exact calldata since last reset.\n\t * @param calldata ABI encoded calldata (methodId and arguments)\n\t */\n\tfunction invocationCountForCalldata(bytes calldata) external returns (uint);\n\n\t/**\n\t * @dev Resets all mocked methods and invocation counts.\n\t */\n\t function reset() external;\n}\n\n/**\n * Implementation of the MockInterface.\n */\ncontract MockContract is MockInterface {\n\tenum MockType { Return, Revert, OutOfGas }\n\t\n\tbytes32 public constant MOCKS_LIST_START = hex\"01\";\n\tbytes public constant MOCKS_LIST_END = \"0xff\";\n\tbytes32 public constant MOCKS_LIST_END_HASH = keccak256(MOCKS_LIST_END);\n\tbytes4 public constant SENTINEL_ANY_MOCKS = hex\"01\";\n\n\t// A linked list allows easy iteration and inclusion checks\n\tmapping(bytes32 => bytes) calldataMocks;\n\tmapping(bytes => MockType) calldataMockTypes;\n\tmapping(bytes => bytes) calldataExpectations;\n\tmapping(bytes => string) calldataRevertMessage;\n\tmapping(bytes32 => uint) calldataInvocations;\n\n\tmapping(bytes4 => bytes4) methodIdMocks;\n\tmapping(bytes4 => MockType) methodIdMockTypes;\n\tmapping(bytes4 => bytes) methodIdExpectations;\n\tmapping(bytes4 => string) methodIdRevertMessages;\n\tmapping(bytes32 => uint) methodIdInvocations;\n\n\tMockType fallbackMockType;\n\tbytes fallbackExpectation;\n\tstring fallbackRevertMessage;\n\tuint invocations;\n\tuint resetCount;\n\n\tconstructor() public {\n\t\tcalldataMocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\t}\n\n\tfunction trackCalldataMock(bytes memory call) private {\n\t\tbytes32 callHash = keccak256(call);\n\t\tif (calldataMocks[callHash].length == 0) {\n\t\t\tcalldataMocks[callHash] = calldataMocks[MOCKS_LIST_START];\n\t\t\tcalldataMocks[MOCKS_LIST_START] = call;\n\t\t}\n\t}\n\n\tfunction trackMethodIdMock(bytes4 methodId) private {\n\t\tif (methodIdMocks[methodId] == 0x0) {\n\t\t\tmethodIdMocks[methodId] = methodIdMocks[SENTINEL_ANY_MOCKS];\n\t\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = methodId;\n\t\t}\n\t}\n\n\tfunction _givenAnyReturn(bytes response) internal {\n\t\tfallbackMockType = MockType.Return;\n\t\tfallbackExpectation = response;\n\t}\n\n\tfunction givenAnyReturn(bytes response) external {\n\t\t_givenAnyReturn(response);\n\t}\n\n\tfunction givenAnyReturnBool(bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenAnyReturn(uintToBytes(flag));\n\t}\n\n\tfunction givenAnyReturnUint(uint response) external {\n\t\t_givenAnyReturn(uintToBytes(response));\t\n\t}\n\n\tfunction givenAnyReturnAddress(address response) external {\n\t\t_givenAnyReturn(addressToBytes(response));\n\t}\n\n\tfunction givenAnyRevert() external {\n\t\tfallbackMockType = MockType.Revert;\n\t\tfallbackRevertMessage = \"\";\n\t}\n\n\tfunction givenAnyRevertWithMessage(string message) external {\n\t\tfallbackMockType = MockType.Revert;\n\t\tfallbackRevertMessage = message;\n\t}\n\n\tfunction givenAnyRunOutOfGas() external {\n\t\tfallbackMockType = MockType.OutOfGas;\n\t}\n\n\tfunction _givenCalldataReturn(bytes call, bytes response) private {\n\t\tcalldataMockTypes[call] = MockType.Return;\n\t\tcalldataExpectations[call] = response;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenCalldataReturn(bytes call, bytes response) external {\n\t\t_givenCalldataReturn(call, response);\n\t}\n\n\tfunction givenCalldataReturnBool(bytes call, bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenMethodReturn(call, uintToBytes(flag));\n\t}\n\n\tfunction givenCalldataReturnUint(bytes call, uint response) external {\n\t\t_givenMethodReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenCalldataReturnAddress(bytes call, address response) external {\n\t\t_givenMethodReturn(call, addressToBytes(response));\n\t}\n\n\tfunction _givenMethodReturn(bytes call, bytes response) private {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Return;\n\t\tmethodIdExpectations[method] = response;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenMethodReturn(bytes call, bytes response) external {\n\t\t_givenMethodReturn(call, response);\n\t}\n\n\tfunction givenMethodReturnBool(bytes call, bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenMethodReturn(call, uintToBytes(flag));\n\t}\n\n\tfunction givenMethodReturnUint(bytes call, uint response) external {\n\t\t_givenMethodReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenMethodReturnAddress(bytes call, address response) external {\n\t\t_givenMethodReturn(call, addressToBytes(response));\n\t}\n\n\tfunction givenCalldataRevert(bytes call) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = \"\";\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevert(bytes call) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Revert;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenCalldataRevertWithMessage(bytes call, string message) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = message;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevertWithMessage(bytes call, string message) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Revert;\n\t\tmethodIdRevertMessages[method] = message;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenCalldataRunOutOfGas(bytes call) external {\n\t\tcalldataMockTypes[call] = MockType.OutOfGas;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRunOutOfGas(bytes call) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.OutOfGas;\n\t\ttrackMethodIdMock(method);\t\n\t}\n\n\tfunction invocationCount() external returns (uint) {\n\t\treturn invocations;\n\t}\n\n\tfunction invocationCountForMethod(bytes call) external returns (uint) {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\treturn methodIdInvocations[keccak256(abi.encodePacked(resetCount, method))];\n\t}\n\n\tfunction invocationCountForCalldata(bytes call) external returns (uint) {\n\t\treturn calldataInvocations[keccak256(abi.encodePacked(resetCount, call))];\n\t}\n\n\tfunction reset() external {\n\t\t// Reset all exact calldataMocks\n\t\tbytes memory nextMock = calldataMocks[MOCKS_LIST_START];\n\t\tbytes32 mockHash = keccak256(nextMock);\n\t\t// We cannot compary bytes\n\t\twhile(mockHash != MOCKS_LIST_END_HASH) {\n\t\t\t// Reset all mock maps\n\t\t\tcalldataMockTypes[nextMock] = MockType.Return;\n\t\t\tcalldataExpectations[nextMock] = hex\"\";\n\t\t\tcalldataRevertMessage[nextMock] = \"\";\n\t\t\t// Set next mock to remove\n\t\t\tnextMock = calldataMocks[mockHash];\n\t\t\t// Remove from linked list\n\t\t\tcalldataMocks[mockHash] = \"\";\n\t\t\t// Update mock hash\n\t\t\tmockHash = keccak256(nextMock);\n\t\t}\n\t\t// Clear list\n\t\tcalldataMocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\n\t\t// Reset all any calldataMocks\n\t\tbytes4 nextAnyMock = methodIdMocks[SENTINEL_ANY_MOCKS];\n\t\twhile(nextAnyMock != SENTINEL_ANY_MOCKS) {\n\t\t\tbytes4 currentAnyMock = nextAnyMock;\n\t\t\tmethodIdMockTypes[currentAnyMock] = MockType.Return;\n\t\t\tmethodIdExpectations[currentAnyMock] = hex\"\";\n\t\t\tmethodIdRevertMessages[currentAnyMock] = \"\";\n\t\t\tnextAnyMock = methodIdMocks[currentAnyMock];\n\t\t\t// Remove from linked list\n\t\t\tmethodIdMocks[currentAnyMock] = 0x0;\n\t\t}\n\t\t// Clear list\n\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\n\t\tfallbackExpectation = \"\";\n\t\tfallbackMockType = MockType.Return;\n\t\tinvocations = 0;\n\t\tresetCount += 1;\n\t}\n\n\tfunction useAllGas() private {\n\t\twhile(true) {\n\t\t\tbool s;\n\t\t\tassembly {\n\t\t\t\t//expensive call to EC multiply contract\n\t\t\t\ts := call(sub(gas, 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction bytesToBytes4(bytes b) private pure returns (bytes4) {\n \t\tbytes4 out;\n \t\tfor (uint i = 0; i < 4; i++) {\n \t\tout |= bytes4(b[i] & 0xFF) >> (i * 8);\n \t\t}\n \t\treturn out;\n\t}\n\n\tfunction addressToBytes(address a) private pure returns (bytes b){\n \t\tassembly {\n \tlet m := mload(0x40)\n \tmstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n \tmstore(0x40, add(m, 52))\n \tb := m\n \t\t}\n\t}\n\n\tfunction uintToBytes(uint256 x) private pure returns (bytes b) {\n \tb = new bytes(32);\n \tassembly { mstore(add(b, 32), x) }\n\t}\n\n\tfunction() payable external {\n\t\tbytes4 methodId;\n\t\tassembly {\n\t\t\tmethodId := calldataload(0)\n\t\t}\n\n\t\t// First, check exact matching overrides\n\t\tif (calldataMockTypes[msg.data] == MockType.Revert) {\n\t\t\trevert(calldataRevertMessage[msg.data]);\n\t\t}\n\t\tif (calldataMockTypes[msg.data] == MockType.OutOfGas) {\n\t\t\tuseAllGas();\n\t\t}\n\t\tbytes memory result = calldataExpectations[msg.data];\n\n\t\t// Then check method Id overrides\n\t\tif (result.length == 0) {\n\t\t\tif (methodIdMockTypes[methodId] == MockType.Revert) {\n\t\t\t\trevert(methodIdRevertMessages[methodId]);\n\t\t\t}\n\t\t\tif (methodIdMockTypes[methodId] == MockType.OutOfGas) {\n\t\t\t\tuseAllGas();\n\t\t\t}\n\t\t\tresult = methodIdExpectations[methodId];\n\t\t}\n\n\t\t// Last, use the fallback override\n\t\tif (result.length == 0) {\n\t\t\tif (fallbackMockType == MockType.Revert) {\n\t\t\t\trevert(fallbackRevertMessage);\n\t\t\t}\n\t\t\tif (fallbackMockType == MockType.OutOfGas) {\n\t\t\t\tuseAllGas();\n\t\t\t}\n\t\t\tresult = fallbackExpectation;\n\t\t}\n\n\t\t// Record invocation\n\t\tinvocations += 1;\n\t\tmethodIdInvocations[keccak256(abi.encodePacked(resetCount, methodId))] += 1;\n\t\tcalldataInvocations[keccak256(abi.encodePacked(resetCount, msg.data))] += 1;\n\n\t\tassembly {\n\t\t\treturn(add(0x20, result), mload(result))\n\t\t}\n\t}\n}\n", - "sourcePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "ast": { - "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "exportedSymbols": { - "MockContract": [ - 4000 - ], - "MockInterface": [ - 3021 - ] - }, - "id": 4001, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2877, - "literals": [ - "solidity", - "^", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:24:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 3021, - "linearizedBaseContracts": [ - 3021 - ], - "name": "MockInterface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when it is called\nwith any calldata that is not mocked more specifically below\n(e.g. using givenMethodReturn).\n@param response ABI encoded response that will be returned if method is invoked", - "id": 2882, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2879, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "358:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2878, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "358:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "357:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2881, - "nodeType": "ParameterList", - "parameters": [], - "src": "382:0:25" - }, - "scope": 3021, - "src": "334:49:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2887, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2884, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2887, - "src": "413:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2883, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "413:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "412:15:25" - }, - "payable": false, - "returnParameters": { - "id": 2886, - "nodeType": "ParameterList", - "parameters": [], - "src": "436:0:25" - }, - "scope": 3021, - "src": "385:52:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2892, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2889, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2892, - "src": "467:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "467:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "466:15:25" - }, - "payable": false, - "returnParameters": { - "id": 2891, - "nodeType": "ParameterList", - "parameters": [], - "src": "490:0:25" - }, - "scope": 3021, - "src": "439:52:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2897, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2895, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2894, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2897, - "src": "524:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2893, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "524:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "523:18:25" - }, - "payable": false, - "returnParameters": { - "id": 2896, - "nodeType": "ParameterList", - "parameters": [], - "src": "550:0:25" - }, - "scope": 3021, - "src": "493:58:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2900, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2898, - "nodeType": "ParameterList", - "parameters": [], - "src": "577:2:25" - }, - "payable": false, - "returnParameters": { - "id": 2899, - "nodeType": "ParameterList", - "parameters": [], - "src": "588:0:25" - }, - "scope": 3021, - "src": "554:35:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2905, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2903, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2902, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2905, - "src": "626:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2901, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "626:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "625:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2904, - "nodeType": "ParameterList", - "parameters": [], - "src": "650:0:25" - }, - "scope": 3021, - "src": "591:60:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2908, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2906, - "nodeType": "ParameterList", - "parameters": [], - "src": "681:2:25" - }, - "payable": false, - "returnParameters": { - "id": 2907, - "nodeType": "ParameterList", - "parameters": [], - "src": "692:0:25" - }, - "scope": 3021, - "src": "653:40:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called regardless of arguments. If the methodId and arguments\nare mocked more specifically (using `givenMethodAndArguments`) the latter\nwill take precedence.\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n@param response ABI encoded response that will be returned if method is invoked", - "id": 2915, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2913, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2910, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1222:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2909, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1222:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2912, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1236:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2911, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1236:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1221:30:25" - }, - "payable": false, - "returnParameters": { - "id": 2914, - "nodeType": "ParameterList", - "parameters": [], - "src": "1260:0:25" - }, - "scope": 3021, - "src": "1195:66:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2922, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2920, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2917, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1294:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2916, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1294:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2919, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1308:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2918, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1308:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1293:29:25" - }, - "payable": false, - "returnParameters": { - "id": 2921, - "nodeType": "ParameterList", - "parameters": [], - "src": "1331:0:25" - }, - "scope": 3021, - "src": "1263:69:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2929, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2924, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1365:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2923, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1365:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2926, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1379:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2925, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1364:29:25" - }, - "payable": false, - "returnParameters": { - "id": 2928, - "nodeType": "ParameterList", - "parameters": [], - "src": "1402:0:25" - }, - "scope": 3021, - "src": "1334:69:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2936, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2931, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1439:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2930, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1439:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2933, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1453:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2932, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1453:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1438:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2935, - "nodeType": "ParameterList", - "parameters": [], - "src": "1479:0:25" - }, - "scope": 3021, - "src": "1405:75:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2941, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2939, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2938, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2941, - "src": "1510:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2937, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1510:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1509:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2940, - "nodeType": "ParameterList", - "parameters": [], - "src": "1532:0:25" - }, - "scope": 3021, - "src": "1483:50:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2948, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2943, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1573:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2942, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1573:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2945, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1587:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2944, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1587:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:30:25" - }, - "payable": false, - "returnParameters": { - "id": 2947, - "nodeType": "ParameterList", - "parameters": [], - "src": "1611:0:25" - }, - "scope": 3021, - "src": "1535:77:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2953, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2950, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2953, - "src": "1646:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1646:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1645:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2952, - "nodeType": "ParameterList", - "parameters": [], - "src": "1668:0:25" - }, - "scope": 3021, - "src": "1614:55:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called with matching arguments. These exact calldataMocks will take\nprecedence over all other calldataMocks.\n@param calldata ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata", - "id": 2960, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2958, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2955, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2089:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2954, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2089:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2957, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2105:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2956, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2105:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2088:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2959, - "nodeType": "ParameterList", - "parameters": [], - "src": "2129:0:25" - }, - "scope": 3021, - "src": "2060:70:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2967, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2962, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2165:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2961, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2165:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2963, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2164:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2966, - "nodeType": "ParameterList", - "parameters": [], - "src": "2204:0:25" - }, - "scope": 3021, - "src": "2132:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2974, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2969, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2240:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2968, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2240:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2971, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2256:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2970, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2256:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2239:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2973, - "nodeType": "ParameterList", - "parameters": [], - "src": "2279:0:25" - }, - "scope": 3021, - "src": "2207:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2981, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2976, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2318:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2975, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2318:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2978, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2334:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2334:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:34:25" - }, - "payable": false, - "returnParameters": { - "id": 2980, - "nodeType": "ParameterList", - "parameters": [], - "src": "2360:0:25" - }, - "scope": 3021, - "src": "2282:79:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2986, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2983, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2986, - "src": "2393:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2982, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2393:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2392:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2985, - "nodeType": "ParameterList", - "parameters": [], - "src": "2417:0:25" - }, - "scope": 3021, - "src": "2364:54:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2993, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2988, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2460:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2987, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2460:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2990, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2476:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2989, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2476:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2459:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [], - "src": "2500:0:25" - }, - "scope": 3021, - "src": "2420:81:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2998, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2995, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2998, - "src": "2537:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2994, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2537:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2536:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2997, - "nodeType": "ParameterList", - "parameters": [], - "src": "2561:0:25" - }, - "scope": 3021, - "src": "2503:59:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times anything has been called on this mock since last reset", - "id": 3003, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2999, - "nodeType": "ParameterList", - "parameters": [], - "src": "2691:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3001, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3003, - "src": "2712:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3000, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2712:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2711:6:25" - }, - "scope": 3021, - "src": "2667:51:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times the given method has been called on this mock since last reset\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it", - "id": 3010, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3005, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3005:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3004, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3005:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3004:14:25" - }, - "payable": false, - "returnParameters": { - "id": 3009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3008, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3037:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3007, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3037:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3036:6:25" - }, - "scope": 3021, - "src": "2971:72:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times this mock has been called with the exact calldata since last reset.\n@param calldata ABI encoded calldata (methodId and arguments)", - "id": 3017, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3263:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3011, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3263:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3262:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3015, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3297:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3014, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3297:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3296:6:25" - }, - "scope": 3021, - "src": "3227:76:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Resets all mocked methods and invocation counts.", - "id": 3020, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3018, - "nodeType": "ParameterList", - "parameters": [], - "src": "3389:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3019, - "nodeType": "ParameterList", - "parameters": [], - "src": "3400:0:25" - }, - "scope": 3021, - "src": "3375:26:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4001, - "src": "26:3377:25" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3022, - "name": "MockInterface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3021, - "src": "3478:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MockInterface_$3021", - "typeString": "contract MockInterface" - } - }, - "id": 3023, - "nodeType": "InheritanceSpecifier", - "src": "3478:13:25" - } - ], - "contractDependencies": [ - 3021 - ], - "contractKind": "contract", - "documentation": "Implementation of the MockInterface.", - "fullyImplemented": true, - "id": 4000, - "linearizedBaseContracts": [ - 4000, - 3021 - ], - "name": "MockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MockContract.MockType", - "id": 3027, - "members": [ - { - "id": 3024, - "name": "Return", - "nodeType": "EnumValue", - "src": "3511:6:25" - }, - { - "id": 3025, - "name": "Revert", - "nodeType": "EnumValue", - "src": "3519:6:25" - }, - { - "id": 3026, - "name": "OutOfGas", - "nodeType": "EnumValue", - "src": "3527:8:25" - } - ], - "name": "MockType", - "nodeType": "EnumDefinition", - "src": "3495:42:25" - }, - { - "constant": true, - "id": 3030, - "name": "MOCKS_LIST_START", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3541:50:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3028, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3541:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3584:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3033, - "name": "MOCKS_LIST_END", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3594:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes" - }, - "typeName": { - "id": 3031, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3594:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786666", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3633:6:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", - "typeString": "literal_string \"0xff\"" - }, - "value": "0xff" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3038, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3642:71:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3642:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3036, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "3698:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 3035, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3688:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3688:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3041, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3716:51:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3039, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3716:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3760:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 3045, - "name": "calldataMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3832:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3044, - "keyType": { - "id": 3042, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3840:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "3832:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3043, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3851:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3049, - "name": "calldataMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3874:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "typeName": { - "id": 3048, - "keyType": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3882:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3874:26:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3047, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "3891:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3053, - "name": "calldataExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3921:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "typeName": { - "id": 3052, - "keyType": { - "id": 3050, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3929:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3921:23:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "valueType": { - "id": 3051, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3938:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3057, - "name": "calldataRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3968:46:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "typeName": { - "id": 3056, - "keyType": { - "id": 3054, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3976:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3968:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "valueType": { - "id": 3055, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3985:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "calldataInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4017:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3060, - "keyType": { - "id": 3058, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4025:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4017:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3059, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4036:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3065, - "name": "methodIdMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4065:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "typeName": { - "id": 3064, - "keyType": { - "id": 3062, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4073:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4065:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "valueType": { - "id": 3063, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4083:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3069, - "name": "methodIdMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4107:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "typeName": { - "id": 3068, - "keyType": { - "id": 3066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4115:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4107:27:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3067, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4125:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3073, - "name": "methodIdExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4155:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "typeName": { - "id": 3072, - "keyType": { - "id": 3070, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4163:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4155:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "valueType": { - "id": 3071, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4173:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3077, - "name": "methodIdRevertMessages", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4203:48:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "typeName": { - "id": 3076, - "keyType": { - "id": 3074, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4211:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4203:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "valueType": { - "id": 3075, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4221:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3081, - "name": "methodIdInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4254:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3080, - "keyType": { - "id": 3078, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4262:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4254:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3079, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4273:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3083, - "name": "fallbackMockType", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4302:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "typeName": { - "contractScope": null, - "id": 3082, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4302:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3085, - "name": "fallbackExpectation", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4330:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes" - }, - "typeName": { - "id": 3084, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4330:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3087, - "name": "fallbackRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4358:28:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3086, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4358:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3089, - "name": "invocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4389:16:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3088, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4389:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3091, - "name": "resetCount", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4408:15:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3090, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4408:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3106, - "nodeType": "Block", - "src": "4448:114:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3094, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4452:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3096, - "indexExpression": { - "argumentTypes": null, - "id": 3095, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4466:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4452:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3097, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "4486:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "4452:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3099, - "nodeType": "ExpressionStatement", - "src": "4452:48:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3100, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4504:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3102, - "indexExpression": { - "argumentTypes": null, - "id": 3101, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4518:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4504:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3103, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4540:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4504:54:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3105, - "nodeType": "ExpressionStatement", - "src": "4504:54:25" - } - ] - }, - "documentation": null, - "id": 3107, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3092, - "nodeType": "ParameterList", - "parameters": [], - "src": "4438:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3093, - "nodeType": "ParameterList", - "parameters": [], - "src": "4448:0:25" - }, - "scope": 4000, - "src": "4427:135:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3140, - "nodeType": "Block", - "src": "4619:196:25", - "statements": [ - { - "assignments": [ - 3113 - ], - "declarations": [ - { - "constant": false, - "id": 3113, - "name": "callHash", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4623:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4623:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3117, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3115, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4652:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3114, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4642:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4642:15:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4623:34:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3118, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4665:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3120, - "indexExpression": { - "argumentTypes": null, - "id": 3119, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4679:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4665:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3121, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4665:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4699:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4665:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3139, - "nodeType": "IfStatement", - "src": "4661:151:25", - "trueBody": { - "id": 3138, - "nodeType": "Block", - "src": "4702:110:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3124, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4707:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3126, - "indexExpression": { - "argumentTypes": null, - "id": 3125, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4721:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4707:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3127, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4733:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3129, - "indexExpression": { - "argumentTypes": null, - "id": 3128, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4747:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4733:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "4707:57:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3131, - "nodeType": "ExpressionStatement", - "src": "4707:57:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3132, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4769:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3134, - "indexExpression": { - "argumentTypes": null, - "id": 3133, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4783:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4769:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3135, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4803:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "4769:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3137, - "nodeType": "ExpressionStatement", - "src": "4769:38:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3141, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackCalldataMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3109, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4592:17:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3108, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4592:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4591:19:25" - }, - "payable": false, - "returnParameters": { - "id": 3111, - "nodeType": "ParameterList", - "parameters": [], - "src": "4619:0:25" - }, - "scope": 4000, - "src": "4565:250:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3167, - "nodeType": "Block", - "src": "4870:161:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3146, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4878:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3148, - "indexExpression": { - "argumentTypes": null, - "id": 3147, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4892:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4878:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "4878:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3166, - "nodeType": "IfStatement", - "src": "4874:154:25", - "trueBody": { - "id": 3165, - "nodeType": "Block", - "src": "4910:118:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3151, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4915:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3153, - "indexExpression": { - "argumentTypes": null, - "id": 3152, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4929:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4915:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3154, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4941:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3156, - "indexExpression": { - "argumentTypes": null, - "id": 3155, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4955:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4941:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4915:59:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3158, - "nodeType": "ExpressionStatement", - "src": "4915:59:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3159, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4979:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3161, - "indexExpression": { - "argumentTypes": null, - "id": 3160, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4993:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4979:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3162, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "5015:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4979:44:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3164, - "nodeType": "ExpressionStatement", - "src": "4979:44:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3168, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackMethodIdMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3143, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3168, - "src": "4845:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3142, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4845:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4844:17:25" - }, - "payable": false, - "returnParameters": { - "id": 3145, - "nodeType": "ParameterList", - "parameters": [], - "src": "4870:0:25" - }, - "scope": 4000, - "src": "4818:213:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3182, - "nodeType": "Block", - "src": "5084:76:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3173, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5088:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3174, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5107:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5107:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5088:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3177, - "nodeType": "ExpressionStatement", - "src": "5088:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3178, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "5126:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3179, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3170, - "src": "5148:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "5126:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3181, - "nodeType": "ExpressionStatement", - "src": "5126:30:25" - } - ] - }, - "documentation": null, - "id": 3183, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3170, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3183, - "src": "5059:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3169, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5059:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5058:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [], - "src": "5084:0:25" - }, - "scope": 4000, - "src": "5034:126:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3192, - "nodeType": "Block", - "src": "5212:33:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3189, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "5232:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3188, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5216:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5216:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3191, - "nodeType": "ExpressionStatement", - "src": "5216:25:25" - } - ] - }, - "documentation": null, - "id": 3193, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3186, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3185, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3193, - "src": "5187:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3184, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5187:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5186:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3187, - "nodeType": "ParameterList", - "parameters": [], - "src": "5212:0:25" - }, - "scope": 4000, - "src": "5163:82:25", - "stateMutability": "nonpayable", - "superFunction": 2882, - "visibility": "external" - }, - { - "body": { - "id": 3211, - "nodeType": "Block", - "src": "5300:74:25", - "statements": [ - { - "assignments": [ - 3199 - ], - "declarations": [ - { - "constant": false, - "id": 3199, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5304:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3198, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5304:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3204, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3200, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3195, - "src": "5316:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5331:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5316:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5304:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3207, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3199, - "src": "5364:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3206, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5352:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5352:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3205, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5336:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5336:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3210, - "nodeType": "ExpressionStatement", - "src": "5336:34:25" - } - ] - }, - "documentation": null, - "id": 3212, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3195, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5276:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3194, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5276:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5275:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3197, - "nodeType": "ParameterList", - "parameters": [], - "src": "5300:0:25" - }, - "scope": 4000, - "src": "5248:126:25", - "stateMutability": "nonpayable", - "superFunction": 2887, - "visibility": "external" - }, - { - "body": { - "id": 3223, - "nodeType": "Block", - "src": "5429:47:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3219, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3214, - "src": "5461:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3218, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5449:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5449:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5433:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5433:38:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3222, - "nodeType": "ExpressionStatement", - "src": "5433:38:25" - } - ] - }, - "documentation": null, - "id": 3224, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3214, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3224, - "src": "5405:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3213, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5405:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5404:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3216, - "nodeType": "ParameterList", - "parameters": [], - "src": "5429:0:25" - }, - "scope": 4000, - "src": "5377:99:25", - "stateMutability": "nonpayable", - "superFunction": 2892, - "visibility": "external" - }, - { - "body": { - "id": 3235, - "nodeType": "Block", - "src": "5537:49:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3231, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3226, - "src": "5572:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3230, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "5557:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5557:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3229, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5541:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5541:41:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3234, - "nodeType": "ExpressionStatement", - "src": "5541:41:25" - } - ] - }, - "documentation": null, - "id": 3236, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3227, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3226, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "5510:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5510:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5509:18:25" - }, - "payable": false, - "returnParameters": { - "id": 3228, - "nodeType": "ParameterList", - "parameters": [], - "src": "5537:0:25" - }, - "scope": 4000, - "src": "5479:107:25", - "stateMutability": "nonpayable", - "superFunction": 2897, - "visibility": "external" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "5624:72:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3239, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5628:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3240, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5647:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5647:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5628:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3243, - "nodeType": "ExpressionStatement", - "src": "5628:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3244, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5666:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5690:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "5666:26:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3247, - "nodeType": "ExpressionStatement", - "src": "5666:26:25" - } - ] - }, - "documentation": null, - "id": 3249, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3237, - "nodeType": "ParameterList", - "parameters": [], - "src": "5612:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3238, - "nodeType": "ParameterList", - "parameters": [], - "src": "5624:0:25" - }, - "scope": 4000, - "src": "5589:107:25", - "stateMutability": "nonpayable", - "superFunction": 2900, - "visibility": "external" - }, - { - "body": { - "id": 3263, - "nodeType": "Block", - "src": "5759:77:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3254, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5763:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3255, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5782:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5782:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5763:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3258, - "nodeType": "ExpressionStatement", - "src": "5763:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3259, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5801:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3260, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "5825:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "5801:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3262, - "nodeType": "ExpressionStatement", - "src": "5801:31:25" - } - ] - }, - "documentation": null, - "id": 3264, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3264, - "src": "5734:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3250, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5734:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5733:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3253, - "nodeType": "ParameterList", - "parameters": [], - "src": "5759:0:25" - }, - "scope": 4000, - "src": "5699:137:25", - "stateMutability": "nonpayable", - "superFunction": 2905, - "visibility": "external" - }, - { - "body": { - "id": 3272, - "nodeType": "Block", - "src": "5879:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3267, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5883:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3268, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5902:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5902:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5883:36:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3271, - "nodeType": "ExpressionStatement", - "src": "5883:36:25" - } - ] - }, - "documentation": null, - "id": 3273, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3265, - "nodeType": "ParameterList", - "parameters": [], - "src": "5867:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3266, - "nodeType": "ParameterList", - "parameters": [], - "src": "5879:0:25" - }, - "scope": 4000, - "src": "5839:84:25", - "stateMutability": "nonpayable", - "superFunction": 2908, - "visibility": "external" - }, - { - "body": { - "id": 3297, - "nodeType": "Block", - "src": "5993:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3280, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "5997:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3282, - "indexExpression": { - "argumentTypes": null, - "id": 3281, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6015:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5997:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3283, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6023:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6023:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5997:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3286, - "nodeType": "ExpressionStatement", - "src": "5997:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3287, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "6042:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3289, - "indexExpression": { - "argumentTypes": null, - "id": 3288, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6063:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6042:26:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3290, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6071:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6042:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3292, - "nodeType": "ExpressionStatement", - "src": "6042:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3294, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6101:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3293, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6083:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6083:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3296, - "nodeType": "ExpressionStatement", - "src": "6083:23:25" - } - ] - }, - "documentation": null, - "id": 3298, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3275, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5956:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3274, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5956:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3277, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5968:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3276, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5968:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5955:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3279, - "nodeType": "ParameterList", - "parameters": [], - "src": "5993:0:25" - }, - "scope": 4000, - "src": "5926:184:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3310, - "nodeType": "Block", - "src": "6180:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3306, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3300, - "src": "6205:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3307, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "6211:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3305, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3298, - "src": "6184:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6184:36:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3309, - "nodeType": "ExpressionStatement", - "src": "6184:36:25" - } - ] - }, - "documentation": null, - "id": 3311, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3303, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3300, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6142:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3299, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6142:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3302, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6154:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3301, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6154:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6141:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3304, - "nodeType": "ParameterList", - "parameters": [], - "src": "6180:0:25" - }, - "scope": 4000, - "src": "6113:111:25", - "stateMutability": "nonpayable", - "superFunction": 2960, - "visibility": "external" - }, - { - "body": { - "id": 3332, - "nodeType": "Block", - "src": "6296:83:25", - "statements": [ - { - "assignments": [ - 3319 - ], - "declarations": [ - { - "constant": false, - "id": 3319, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6300:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3318, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6300:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3324, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3320, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "6312:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6312:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6323:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6300:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3326, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3313, - "src": "6351:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3328, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "6369:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3327, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6357:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6357:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3325, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6332:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6332:43:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3331, - "nodeType": "ExpressionStatement", - "src": "6332:43:25" - } - ] - }, - "documentation": null, - "id": 3333, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3313, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6260:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3312, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6260:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3315, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6272:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3314, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6272:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6259:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3317, - "nodeType": "ParameterList", - "parameters": [], - "src": "6296:0:25" - }, - "scope": 4000, - "src": "6227:152:25", - "stateMutability": "nonpayable", - "superFunction": 2967, - "visibility": "external" - }, - { - "body": { - "id": 3347, - "nodeType": "Block", - "src": "6451:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3341, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3335, - "src": "6474:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3343, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "6492:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3342, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6480:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6480:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3340, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6455:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6455:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3346, - "nodeType": "ExpressionStatement", - "src": "6455:47:25" - } - ] - }, - "documentation": null, - "id": 3348, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3335, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6415:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3334, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6415:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3337, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6427:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6427:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6414:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3339, - "nodeType": "ParameterList", - "parameters": [], - "src": "6451:0:25" - }, - "scope": 4000, - "src": "6382:124:25", - "stateMutability": "nonpayable", - "superFunction": 2974, - "visibility": "external" - }, - { - "body": { - "id": 3362, - "nodeType": "Block", - "src": "6584:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3356, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "6607:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3358, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3352, - "src": "6628:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3357, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "6613:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3355, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6588:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6588:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3361, - "nodeType": "ExpressionStatement", - "src": "6588:50:25" - } - ] - }, - "documentation": null, - "id": 3363, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3350, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6545:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3349, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6545:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3352, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6557:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3351, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6557:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6544:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3354, - "nodeType": "ParameterList", - "parameters": [], - "src": "6584:0:25" - }, - "scope": 4000, - "src": "6509:133:25", - "stateMutability": "nonpayable", - "superFunction": 2981, - "visibility": "external" - }, - { - "body": { - "id": 3393, - "nodeType": "Block", - "src": "6709:164:25", - "statements": [ - { - "assignments": [ - 3371 - ], - "declarations": [ - { - "constant": false, - "id": 3371, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6713:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3370, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "6713:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3375, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3373, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3365, - "src": "6743:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3372, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "6729:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6729:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6713:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3376, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "6752:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3378, - "indexExpression": { - "argumentTypes": null, - "id": 3377, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6770:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6752:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3379, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6780:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6780:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6752:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3382, - "nodeType": "ExpressionStatement", - "src": "6752:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3383, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "6799:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3385, - "indexExpression": { - "argumentTypes": null, - "id": 3384, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6820:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6799:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3386, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3367, - "src": "6830:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6799:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3388, - "nodeType": "ExpressionStatement", - "src": "6799:39:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3390, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6860:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3389, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "6842:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6842:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3392, - "nodeType": "ExpressionStatement", - "src": "6842:25:25" - } - ] - }, - "documentation": null, - "id": 3394, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3365, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6673:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3364, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6673:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3367, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6685:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3366, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6685:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6672:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [], - "src": "6709:0:25" - }, - "scope": 4000, - "src": "6645:228:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3406, - "nodeType": "Block", - "src": "6940:42:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3402, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "6963:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3403, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "6969:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3401, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6944:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6944:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3405, - "nodeType": "ExpressionStatement", - "src": "6944:34:25" - } - ] - }, - "documentation": null, - "id": 3407, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3396, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6903:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3395, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6903:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3398, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6915:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3397, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6915:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6902:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3400, - "nodeType": "ParameterList", - "parameters": [], - "src": "6940:0:25" - }, - "scope": 4000, - "src": "6876:106:25", - "stateMutability": "nonpayable", - "superFunction": 2915, - "visibility": "external" - }, - { - "body": { - "id": 3428, - "nodeType": "Block", - "src": "7052:83:25", - "statements": [ - { - "assignments": [ - 3415 - ], - "declarations": [ - { - "constant": false, - "id": 3415, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7056:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3414, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7056:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3420, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3416, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3411, - "src": "7068:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7083:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7068:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7079:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7056:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3422, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3409, - "src": "7107:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3424, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3415, - "src": "7125:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3423, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7113:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7113:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3421, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7088:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7088:43:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3427, - "nodeType": "ExpressionStatement", - "src": "7088:43:25" - } - ] - }, - "documentation": null, - "id": 3429, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3412, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3409, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7016:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3408, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7016:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3411, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7028:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3410, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7028:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7015:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3413, - "nodeType": "ParameterList", - "parameters": [], - "src": "7052:0:25" - }, - "scope": 4000, - "src": "6985:150:25", - "stateMutability": "nonpayable", - "superFunction": 2922, - "visibility": "external" - }, - { - "body": { - "id": 3443, - "nodeType": "Block", - "src": "7205:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3437, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "7228:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3439, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3433, - "src": "7246:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3438, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7234:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7234:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3436, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7209:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7209:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3442, - "nodeType": "ExpressionStatement", - "src": "7209:47:25" - } - ] - }, - "documentation": null, - "id": 3444, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3431, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7169:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3430, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7169:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3433, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3432, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7168:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3435, - "nodeType": "ParameterList", - "parameters": [], - "src": "7205:0:25" - }, - "scope": 4000, - "src": "7138:122:25", - "stateMutability": "nonpayable", - "superFunction": 2929, - "visibility": "external" - }, - { - "body": { - "id": 3458, - "nodeType": "Block", - "src": "7336:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3452, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "7359:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3454, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3448, - "src": "7380:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3453, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "7365:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7365:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3451, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7340:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7340:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3457, - "nodeType": "ExpressionStatement", - "src": "7340:50:25" - } - ] - }, - "documentation": null, - "id": 3459, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7297:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7297:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3448, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7309:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3447, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7309:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7296:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3450, - "nodeType": "ParameterList", - "parameters": [], - "src": "7336:0:25" - }, - "scope": 4000, - "src": "7263:131:25", - "stateMutability": "nonpayable", - "superFunction": 2936, - "visibility": "external" - }, - { - "body": { - "id": 3481, - "nodeType": "Block", - "src": "7447:112:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3464, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7451:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3466, - "indexExpression": { - "argumentTypes": null, - "id": 3465, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7469:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7451:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3467, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7477:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7477:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7451:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3470, - "nodeType": "ExpressionStatement", - "src": "7451:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3471, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7496:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3473, - "indexExpression": { - "argumentTypes": null, - "id": 3472, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7518:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7496:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7526:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "7496:32:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3476, - "nodeType": "ExpressionStatement", - "src": "7496:32:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3478, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7550:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3477, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7532:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7532:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3480, - "nodeType": "ExpressionStatement", - "src": "7532:23:25" - } - ] - }, - "documentation": null, - "id": 3482, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3461, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3482, - "src": "7426:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3460, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7426:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7425:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3463, - "nodeType": "ParameterList", - "parameters": [], - "src": "7447:0:25" - }, - "scope": 4000, - "src": "7397:162:25", - "stateMutability": "nonpayable", - "superFunction": 2986, - "visibility": "external" - }, - { - "body": { - "id": 3504, - "nodeType": "Block", - "src": "7610:121:25", - "statements": [ - { - "assignments": [ - 3488 - ], - "declarations": [ - { - "constant": false, - "id": 3488, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7614:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3487, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7614:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3490, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3484, - "src": "7644:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3489, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "7630:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7630:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7614:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3493, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "7653:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3495, - "indexExpression": { - "argumentTypes": null, - "id": 3494, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7671:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7653:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3496, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7681:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7681:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7653:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3499, - "nodeType": "ExpressionStatement", - "src": "7653:43:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3501, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7718:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3500, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "7700:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7700:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "7700:25:25" - } - ] - }, - "documentation": null, - "id": 3505, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3484, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7589:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3483, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7589:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7588:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3486, - "nodeType": "ParameterList", - "parameters": [], - "src": "7610:0:25" - }, - "scope": 4000, - "src": "7562:169:25", - "stateMutability": "nonpayable", - "superFunction": 2941, - "visibility": "external" - }, - { - "body": { - "id": 3529, - "nodeType": "Block", - "src": "7811:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3512, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7815:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3514, - "indexExpression": { - "argumentTypes": null, - "id": 3513, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7833:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7815:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3515, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7841:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7841:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7815:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3518, - "nodeType": "ExpressionStatement", - "src": "7815:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3519, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7860:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3521, - "indexExpression": { - "argumentTypes": null, - "id": 3520, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7882:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7860:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3522, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3509, - "src": "7890:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "7860:37:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3524, - "nodeType": "ExpressionStatement", - "src": "7860:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3526, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7919:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3525, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7901:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7901:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "7901:23:25" - } - ] - }, - "documentation": null, - "id": 3530, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3510, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3507, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7774:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3506, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7774:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3509, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7786:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3508, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7786:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7773:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3511, - "nodeType": "ParameterList", - "parameters": [], - "src": "7811:0:25" - }, - "scope": 4000, - "src": "7734:194:25", - "stateMutability": "nonpayable", - "superFunction": 2993, - "visibility": "external" - }, - { - "body": { - "id": 3560, - "nodeType": "Block", - "src": "8006:165:25", - "statements": [ - { - "assignments": [ - 3538 - ], - "declarations": [ - { - "constant": false, - "id": 3538, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "8010:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3537, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8010:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3542, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3540, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3532, - "src": "8040:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3539, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8026:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8026:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8010:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3543, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8049:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3545, - "indexExpression": { - "argumentTypes": null, - "id": 3544, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8067:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8049:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3546, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8077:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8077:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8049:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3549, - "nodeType": "ExpressionStatement", - "src": "8049:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3550, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "8096:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3552, - "indexExpression": { - "argumentTypes": null, - "id": 3551, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8119:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8096:30:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3553, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "8129:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "8096:40:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3555, - "nodeType": "ExpressionStatement", - "src": "8096:40:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8158:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3556, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8140:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8140:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3559, - "nodeType": "ExpressionStatement", - "src": "8140:25:25" - } - ] - }, - "documentation": null, - "id": 3561, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3535, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3532, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7969:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3531, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7969:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3534, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7981:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3533, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7981:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7968:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3536, - "nodeType": "ParameterList", - "parameters": [], - "src": "8006:0:25" - }, - "scope": 4000, - "src": "7931:240:25", - "stateMutability": "nonpayable", - "superFunction": 2948, - "visibility": "external" - }, - { - "body": { - "id": 3577, - "nodeType": "Block", - "src": "8229:78:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3566, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "8233:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3568, - "indexExpression": { - "argumentTypes": null, - "id": 3567, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8251:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8233:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3569, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8259:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3570, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8259:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8233:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3572, - "nodeType": "ExpressionStatement", - "src": "8233:43:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3574, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8298:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3573, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "8280:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8280:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3576, - "nodeType": "ExpressionStatement", - "src": "8280:23:25" - } - ] - }, - "documentation": null, - "id": 3578, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3564, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3563, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "8208:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3562, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8208:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8207:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3565, - "nodeType": "ParameterList", - "parameters": [], - "src": "8229:0:25" - }, - "scope": 4000, - "src": "8174:133:25", - "stateMutability": "nonpayable", - "superFunction": 2998, - "visibility": "external" - }, - { - "body": { - "id": 3600, - "nodeType": "Block", - "src": "8363:122:25", - "statements": [ - { - "assignments": [ - 3584 - ], - "declarations": [ - { - "constant": false, - "id": 3584, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8367:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3583, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8367:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3588, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3586, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3580, - "src": "8397:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3585, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8383:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8383:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8367:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3589, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8406:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3591, - "indexExpression": { - "argumentTypes": null, - "id": 3590, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8424:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8406:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3592, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8434:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8434:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8406:45:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3595, - "nodeType": "ExpressionStatement", - "src": "8406:45:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3597, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8473:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3596, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8455:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8455:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3599, - "nodeType": "ExpressionStatement", - "src": "8455:25:25" - } - ] - }, - "documentation": null, - "id": 3601, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3581, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3580, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8342:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3579, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8342:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8341:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3582, - "nodeType": "ParameterList", - "parameters": [], - "src": "8363:0:25" - }, - "scope": 4000, - "src": "8310:175:25", - "stateMutability": "nonpayable", - "superFunction": 2953, - "visibility": "external" - }, - { - "body": { - "id": 3608, - "nodeType": "Block", - "src": "8539:26:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3606, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "8550:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3605, - "id": 3607, - "nodeType": "Return", - "src": "8543:18:25" - } - ] - }, - "documentation": null, - "id": 3609, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "8512:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3604, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3609, - "src": "8533:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3603, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8533:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8532:6:25" - }, - "scope": 4000, - "src": "8488:77:25", - "stateMutability": "nonpayable", - "superFunction": 3003, - "visibility": "external" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "8638:122:25", - "statements": [ - { - "assignments": [ - 3617 - ], - "declarations": [ - { - "constant": false, - "id": 3617, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8642:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3616, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8642:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3621, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3619, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "8672:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3618, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8658:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8658:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8642:35:25" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3622, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "8688:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3630, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3626, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8735:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3627, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3617, - "src": "8747:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 3624, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8718:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3625, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8718:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8718:36:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3623, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8708:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8708:47:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8688:68:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3615, - "id": 3631, - "nodeType": "Return", - "src": "8681:75:25" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3612, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3611, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8602:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3610, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8602:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8601:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3615, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3614, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8632:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3613, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8632:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8631:6:25" - }, - "scope": 4000, - "src": "8568:192:25", - "stateMutability": "nonpayable", - "superFunction": 3010, - "visibility": "external" - }, - { - "body": { - "id": 3650, - "nodeType": "Block", - "src": "8835:81:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3640, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "8846:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3648, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8893:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3635, - "src": "8905:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 3642, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8876:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8876:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8876:34:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3641, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8866:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8866:45:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8846:66:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3639, - "id": 3649, - "nodeType": "Return", - "src": "8839:73:25" - } - ] - }, - "documentation": null, - "id": 3651, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3636, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3635, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8799:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3634, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8799:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8798:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3638, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8829:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3637, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8829:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8828:6:25" - }, - "scope": 4000, - "src": "8763:153:25", - "stateMutability": "nonpayable", - "superFunction": 3017, - "visibility": "external" - }, - { - "body": { - "id": 3783, - "nodeType": "Block", - "src": "8945:1265:25", - "statements": [ - { - "assignments": [ - 3655 - ], - "declarations": [ - { - "constant": false, - "id": 3655, - "name": "nextMock", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "8984:21:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3654, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8984:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3659, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3656, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9008:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3658, - "indexExpression": { - "argumentTypes": null, - "id": 3657, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9022:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9008:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8984:55:25" - }, - { - "assignments": [ - 3661 - ], - "declarations": [ - { - "constant": false, - "id": 3661, - "name": "mockHash", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9043:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3660, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9043:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3665, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3663, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9072:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3662, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9062:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9062:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9043:38:25" - }, - { - "body": { - "id": 3706, - "nodeType": "Block", - "src": "9153:355:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3669, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "9184:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3671, - "indexExpression": { - "argumentTypes": null, - "id": 3670, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9202:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9184:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3672, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9214:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9214:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "9184:45:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3675, - "nodeType": "ExpressionStatement", - "src": "9184:45:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3676, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "9234:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3678, - "indexExpression": { - "argumentTypes": null, - "id": 3677, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9255:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9234:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9267:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9234:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3681, - "nodeType": "ExpressionStatement", - "src": "9234:38:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3682, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "9277:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3684, - "indexExpression": { - "argumentTypes": null, - "id": 3683, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9299:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9277:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9311:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9277:36:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3687, - "nodeType": "ExpressionStatement", - "src": "9277:36:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9348:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3689, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9359:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3691, - "indexExpression": { - "argumentTypes": null, - "id": 3690, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9373:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9359:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "9348:34:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3693, - "nodeType": "ExpressionStatement", - "src": "9348:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3694, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9417:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3696, - "indexExpression": { - "argumentTypes": null, - "id": 3695, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9431:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9417:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9443:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9417:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "9417:28:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9473:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3702, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9494:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3701, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9484:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9484:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9473:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3705, - "nodeType": "ExpressionStatement", - "src": "9473:30:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 3668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3666, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9120:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 3667, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "9132:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9120:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3707, - "nodeType": "WhileStatement", - "src": "9114:394:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3708, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9527:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3710, - "indexExpression": { - "argumentTypes": null, - "id": 3709, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9541:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9527:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3711, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "9561:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "9527:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3713, - "nodeType": "ExpressionStatement", - "src": "9527:48:25" - }, - { - "assignments": [ - 3715 - ], - "declarations": [ - { - "constant": false, - "id": 3715, - "name": "nextAnyMock", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9613:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3714, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "9613:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3719, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3716, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9634:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3718, - "indexExpression": { - "argumentTypes": null, - "id": 3717, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9648:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9634:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9613:54:25" - }, - { - "body": { - "id": 3758, - "nodeType": "Block", - "src": "9712:316:25", - "statements": [ - { - "assignments": [ - 3724 - ], - "declarations": [ - { - "constant": false, - "id": 3724, - "name": "currentAnyMock", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9717:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3723, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "9717:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3726, - "initialValue": { - "argumentTypes": null, - "id": 3725, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9741:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9717:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3727, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "9757:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3729, - "indexExpression": { - "argumentTypes": null, - "id": 3728, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9775:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9757:33:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9793:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9793:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "9757:51:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3733, - "nodeType": "ExpressionStatement", - "src": "9757:51:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3734, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "9813:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "id": 3735, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9834:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9813:36:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9852:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9813:44:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3739, - "nodeType": "ExpressionStatement", - "src": "9813:44:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3740, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "9862:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3742, - "indexExpression": { - "argumentTypes": null, - "id": 3741, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9885:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9862:38:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3743, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9903:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9862:43:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3745, - "nodeType": "ExpressionStatement", - "src": "9862:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3746, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9910:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9924:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9938:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9924:29:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "9910:43:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3751, - "nodeType": "ExpressionStatement", - "src": "9910:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3752, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9988:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3754, - "indexExpression": { - "argumentTypes": null, - "id": 3753, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "10002:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9988:29:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10020:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "9988:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3757, - "nodeType": "ExpressionStatement", - "src": "9988:35:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3720, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9677:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 3721, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9692:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "9677:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3759, - "nodeType": "WhileStatement", - "src": "9671:357:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3760, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "10047:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3762, - "indexExpression": { - "argumentTypes": null, - "id": 3761, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10061:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10047:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3763, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10083:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10047:54:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3765, - "nodeType": "ExpressionStatement", - "src": "10047:54:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3766, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "10106:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10128:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10106:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3769, - "nodeType": "ExpressionStatement", - "src": "10106:24:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3770, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "10134:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3771, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "10153:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10153:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "10134:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3774, - "nodeType": "ExpressionStatement", - "src": "10134:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3775, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "10172:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 3776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10186:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10172:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3778, - "nodeType": "ExpressionStatement", - "src": "10172:15:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3779, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "10191:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10205:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10191:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3782, - "nodeType": "ExpressionStatement", - "src": "10191:15:25" - } - ] - }, - "documentation": null, - "id": 3784, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3652, - "nodeType": "ParameterList", - "parameters": [], - "src": "8933:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3653, - "nodeType": "ParameterList", - "parameters": [], - "src": "8945:0:25" - }, - "scope": 4000, - "src": "8919:1291:25", - "stateMutability": "nonpayable", - "superFunction": 3020, - "visibility": "external" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "10242:157:25", - "statements": [ - { - "body": { - "id": 3792, - "nodeType": "Block", - "src": "10258:138:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3789, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "10263:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3788, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10263:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3790, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10263:6:25" - }, - { - "externalReferences": [ - { - "s": { - "declaration": 3789, - "isOffset": false, - "isSlot": false, - "src": "10334:1:25", - "valueSize": 1 - } - } - ], - "id": 3791, - "nodeType": "InlineAssembly", - "operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}", - "src": "10274:122:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10252:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "id": 3793, - "nodeType": "WhileStatement", - "src": "10246:150:25" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "useAllGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3785, - "nodeType": "ParameterList", - "parameters": [], - "src": "10231:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [], - "src": "10242:0:25" - }, - "scope": 4000, - "src": "10213:186:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3834, - "nodeType": "Block", - "src": "10464:122:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3803, - "name": "out", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10470:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3802, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10470:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3804, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10470:10:25" - }, - { - "body": { - "id": 3830, - "nodeType": "Block", - "src": "10515:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3815, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10523:3:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "id": 3821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3817, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "10537:1:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3819, - "indexExpression": { - "argumentTypes": null, - "id": 3818, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10539:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10537:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30784646", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10544:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "value": "0xFF" - }, - "src": "10537:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - ], - "id": 3816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10530:6:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 3822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10530:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3823, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10554:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "38", - "id": 3824, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10558:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "10554:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3826, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10553:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10530:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10523:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3829, - "nodeType": "ExpressionStatement", - "src": "10523:37:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3809, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10503:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 3810, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10507:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "10503:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3831, - "initializationExpression": { - "assignments": [ - 3806 - ], - "declarations": [ - { - "constant": false, - "id": 3806, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10491:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3805, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10491:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3808, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3807, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10500:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10491:10:25" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10510:3:25", - "subExpression": { - "argumentTypes": null, - "id": 3812, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10510:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3814, - "nodeType": "ExpressionStatement", - "src": "10510:3:25" - }, - "nodeType": "ForStatement", - "src": "10486:81:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3832, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10579:3:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "functionReturnParameters": 3801, - "id": 3833, - "nodeType": "Return", - "src": "10572:10:25" - } - ] - }, - "documentation": null, - "id": 3835, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "bytesToBytes4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3798, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10425:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3796, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10425:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10424:9:25" - }, - "payable": false, - "returnParameters": { - "id": 3801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3800, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10456:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3799, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10456:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10455:8:25" - }, - "scope": 4000, - "src": "10402:184:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3843, - "nodeType": "Block", - "src": "10654:189:25", - "statements": [ - { - "externalReferences": [ - { - "b": { - "declaration": 3840, - "isOffset": false, - "isSlot": false, - "src": "10827:1:25", - "valueSize": 1 - } - }, - { - "a": { - "declaration": 3837, - "isOffset": false, - "isSlot": false, - "src": "10780:1:25", - "valueSize": 1 - } - } - ], - "id": 3842, - "nodeType": "InlineAssembly", - "operations": "{\n let m := mload(0x40)\n mstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n mstore(0x40, add(m, 52))\n b := m\n}", - "src": "10661:182:25" - } - ] - }, - "documentation": null, - "id": 3844, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "addressToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3837, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10613:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3836, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10613:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10612:11:25" - }, - "payable": false, - "returnParameters": { - "id": 3841, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3840, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10646:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3839, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10646:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10645:9:25" - }, - "scope": 4000, - "src": "10589:254:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3859, - "nodeType": "Block", - "src": "10909:68:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3851, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3849, - "src": "10916:1:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 3854, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10930:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "id": 3853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "10920:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 3852, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10924:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10920:13:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "10916:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3857, - "nodeType": "ExpressionStatement", - "src": "10916:17:25" - }, - { - "externalReferences": [ - { - "x": { - "declaration": 3846, - "isOffset": false, - "isSlot": false, - "src": "10970:1:25", - "valueSize": 1 - } - }, - { - "b": { - "declaration": 3849, - "isOffset": false, - "isSlot": false, - "src": "10962:1:25", - "valueSize": 1 - } - } - ], - "id": 3858, - "nodeType": "InlineAssembly", - "operations": "{\n mstore(add(b, 32), x)\n}", - "src": "10940:37:25" - } - ] - }, - "documentation": null, - "id": 3860, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "uintToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3847, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3846, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10867:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3845, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10867:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10866:11:25" - }, - "payable": false, - "returnParameters": { - "id": 3850, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3849, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10900:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3848, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10900:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10899:9:25" - }, - "scope": 4000, - "src": "10846:131:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3998, - "nodeType": "Block", - "src": "11008:1178:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3864, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11012:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3863, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11012:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3865, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "11012:15:25" - }, - { - "externalReferences": [ - { - "methodId": { - "declaration": 3864, - "isOffset": false, - "isSlot": false, - "src": "11045:8:25", - "valueSize": 1 - } - } - ], - "id": 3866, - "nodeType": "InlineAssembly", - "operations": "{\n methodId := calldataload(0)\n}", - "src": "11031:94:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3867, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11127:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3870, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3868, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11145:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11145:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11127:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3871, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11158:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11158:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11127:46:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3882, - "nodeType": "IfStatement", - "src": "11123:101:25", - "trueBody": { - "id": 3881, - "nodeType": "Block", - "src": "11175:49:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3875, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "11187:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3878, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3876, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11209:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11209:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11187:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 3874, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "11180:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11180:39:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3880, - "nodeType": "ExpressionStatement", - "src": "11180:39:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3883, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11231:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3886, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3884, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11249:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11249:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11231:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3887, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11262:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11262:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11231:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3894, - "nodeType": "IfStatement", - "src": "11227:75:25", - "trueBody": { - "id": 3893, - "nodeType": "Block", - "src": "11281:21:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3890, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11286:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11286:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3892, - "nodeType": "ExpressionStatement", - "src": "11286:11:25" - } - ] - } - }, - { - "assignments": [ - 3896 - ], - "declarations": [ - { - "constant": false, - "id": 3896, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11305:19:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3895, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11305:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3901, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3897, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "11327:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3900, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3898, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11348:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11348:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11327:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11305:52:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3902, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11402:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11402:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11419:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11402:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3938, - "nodeType": "IfStatement", - "src": "11398:262:25", - "trueBody": { - "id": 3937, - "nodeType": "Block", - "src": "11422:238:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3906, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11431:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3908, - "indexExpression": { - "argumentTypes": null, - "id": 3907, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11449:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11431:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3909, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11462:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3910, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11462:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11431:46:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3919, - "nodeType": "IfStatement", - "src": "11427:104:25", - "trueBody": { - "id": 3918, - "nodeType": "Block", - "src": "11479:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3913, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "11492:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3915, - "indexExpression": { - "argumentTypes": null, - "id": 3914, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11515:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11492:32:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 3912, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "11485:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11485:40:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "11485:40:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3920, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11539:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3922, - "indexExpression": { - "argumentTypes": null, - "id": 3921, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11557:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11539:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3923, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11570:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11570:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11539:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3930, - "nodeType": "IfStatement", - "src": "11535:77:25", - "trueBody": { - "id": 3929, - "nodeType": "Block", - "src": "11589:23:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3926, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11595:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11595:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3928, - "nodeType": "ExpressionStatement", - "src": "11595:11:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3931, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11616:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3932, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "11625:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3934, - "indexExpression": { - "argumentTypes": null, - "id": 3933, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11646:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11625:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "11616:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3936, - "nodeType": "ExpressionStatement", - "src": "11616:39:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3939, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11705:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11705:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3941, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11722:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11705:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3967, - "nodeType": "IfStatement", - "src": "11701:218:25", - "trueBody": { - "id": 3966, - "nodeType": "Block", - "src": "11725:194:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3943, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11734:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3944, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11754:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11754:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11734:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3952, - "nodeType": "IfStatement", - "src": "11730:82:25", - "trueBody": { - "id": 3951, - "nodeType": "Block", - "src": "11771:41:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3948, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "11784:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 3947, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "11777:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11777:29:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3950, - "nodeType": "ExpressionStatement", - "src": "11777:29:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3953, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11820:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3954, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11840:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3955, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11840:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11820:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3961, - "nodeType": "IfStatement", - "src": "11816:66:25", - "trueBody": { - "id": 3960, - "nodeType": "Block", - "src": "11859:23:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3957, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11865:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11865:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3959, - "nodeType": "ExpressionStatement", - "src": "11865:11:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3962, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11886:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3963, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "11895:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "11886:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3965, - "nodeType": "ExpressionStatement", - "src": "11886:28:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3968, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "11946:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3969, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11961:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11946:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3971, - "nodeType": "ExpressionStatement", - "src": "11946:16:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3972, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "11966:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3980, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3976, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12013:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3977, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "12025:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 3974, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "11996:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11996:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11996:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3973, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "11986:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11986:49:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11966:70:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3981, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12040:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11966:75:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3983, - "nodeType": "ExpressionStatement", - "src": "11966:75:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3984, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "12045:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3993, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3988, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12092:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3989, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "12104:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12104:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 3986, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12075:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3987, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12075:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12075:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3985, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12065:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12065:49:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12045:70:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12119:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12045:75:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3996, - "nodeType": "ExpressionStatement", - "src": "12045:75:25" - }, - { - "externalReferences": [ - { - "result": { - "declaration": 3896, - "isOffset": false, - "isSlot": false, - "src": "12156:6:25", - "valueSize": 1 - } - }, - { - "result": { - "declaration": 3896, - "isOffset": false, - "isSlot": false, - "src": "12171:6:25", - "valueSize": 1 - } - } - ], - "id": 3997, - "nodeType": "InlineAssembly", - "operations": "{\n return(add(0x20, result), mload(result))\n}", - "src": "12125:61:25" - } - ] - }, - "documentation": null, - "id": 3999, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3861, - "nodeType": "ParameterList", - "parameters": [], - "src": "10988:2:25" - }, - "payable": true, - "returnParameters": { - "id": 3862, - "nodeType": "ParameterList", - "parameters": [], - "src": "11008:0:25" - }, - "scope": 4000, - "src": "10980:1206:25", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4001, - "src": "3453:8735:25" - } - ], - "src": "0:12189:25" - }, - "legacyAST": { - "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "exportedSymbols": { - "MockContract": [ - 4000 - ], - "MockInterface": [ - 3021 - ] - }, - "id": 4001, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2877, - "literals": [ - "solidity", - "^", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:24:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 3021, - "linearizedBaseContracts": [ - 3021 - ], - "name": "MockInterface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when it is called\nwith any calldata that is not mocked more specifically below\n(e.g. using givenMethodReturn).\n@param response ABI encoded response that will be returned if method is invoked", - "id": 2882, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2879, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "358:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2878, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "358:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "357:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2881, - "nodeType": "ParameterList", - "parameters": [], - "src": "382:0:25" - }, - "scope": 3021, - "src": "334:49:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2887, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2884, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2887, - "src": "413:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2883, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "413:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "412:15:25" - }, - "payable": false, - "returnParameters": { - "id": 2886, - "nodeType": "ParameterList", - "parameters": [], - "src": "436:0:25" - }, - "scope": 3021, - "src": "385:52:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2892, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2889, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2892, - "src": "467:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "467:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "466:15:25" - }, - "payable": false, - "returnParameters": { - "id": 2891, - "nodeType": "ParameterList", - "parameters": [], - "src": "490:0:25" - }, - "scope": 3021, - "src": "439:52:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2897, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2895, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2894, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2897, - "src": "524:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2893, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "524:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "523:18:25" - }, - "payable": false, - "returnParameters": { - "id": 2896, - "nodeType": "ParameterList", - "parameters": [], - "src": "550:0:25" - }, - "scope": 3021, - "src": "493:58:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2900, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2898, - "nodeType": "ParameterList", - "parameters": [], - "src": "577:2:25" - }, - "payable": false, - "returnParameters": { - "id": 2899, - "nodeType": "ParameterList", - "parameters": [], - "src": "588:0:25" - }, - "scope": 3021, - "src": "554:35:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2905, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2903, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2902, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2905, - "src": "626:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2901, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "626:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "625:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2904, - "nodeType": "ParameterList", - "parameters": [], - "src": "650:0:25" - }, - "scope": 3021, - "src": "591:60:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2908, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2906, - "nodeType": "ParameterList", - "parameters": [], - "src": "681:2:25" - }, - "payable": false, - "returnParameters": { - "id": 2907, - "nodeType": "ParameterList", - "parameters": [], - "src": "692:0:25" - }, - "scope": 3021, - "src": "653:40:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called regardless of arguments. If the methodId and arguments\nare mocked more specifically (using `givenMethodAndArguments`) the latter\nwill take precedence.\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n@param response ABI encoded response that will be returned if method is invoked", - "id": 2915, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2913, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2910, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1222:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2909, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1222:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2912, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1236:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2911, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1236:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1221:30:25" - }, - "payable": false, - "returnParameters": { - "id": 2914, - "nodeType": "ParameterList", - "parameters": [], - "src": "1260:0:25" - }, - "scope": 3021, - "src": "1195:66:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2922, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2920, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2917, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1294:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2916, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1294:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2919, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1308:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2918, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1308:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1293:29:25" - }, - "payable": false, - "returnParameters": { - "id": 2921, - "nodeType": "ParameterList", - "parameters": [], - "src": "1331:0:25" - }, - "scope": 3021, - "src": "1263:69:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2929, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2924, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1365:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2923, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1365:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2926, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1379:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2925, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1364:29:25" - }, - "payable": false, - "returnParameters": { - "id": 2928, - "nodeType": "ParameterList", - "parameters": [], - "src": "1402:0:25" - }, - "scope": 3021, - "src": "1334:69:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2936, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2931, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1439:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2930, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1439:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2933, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1453:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2932, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1453:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1438:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2935, - "nodeType": "ParameterList", - "parameters": [], - "src": "1479:0:25" - }, - "scope": 3021, - "src": "1405:75:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2941, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2939, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2938, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2941, - "src": "1510:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2937, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1510:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1509:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2940, - "nodeType": "ParameterList", - "parameters": [], - "src": "1532:0:25" - }, - "scope": 3021, - "src": "1483:50:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2948, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2943, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1573:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2942, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1573:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2945, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1587:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2944, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1587:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:30:25" - }, - "payable": false, - "returnParameters": { - "id": 2947, - "nodeType": "ParameterList", - "parameters": [], - "src": "1611:0:25" - }, - "scope": 3021, - "src": "1535:77:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2953, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2950, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2953, - "src": "1646:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1646:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1645:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2952, - "nodeType": "ParameterList", - "parameters": [], - "src": "1668:0:25" - }, - "scope": 3021, - "src": "1614:55:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called with matching arguments. These exact calldataMocks will take\nprecedence over all other calldataMocks.\n@param calldata ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata", - "id": 2960, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2958, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2955, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2089:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2954, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2089:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2957, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2105:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2956, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2105:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2088:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2959, - "nodeType": "ParameterList", - "parameters": [], - "src": "2129:0:25" - }, - "scope": 3021, - "src": "2060:70:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2967, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2962, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2165:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2961, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2165:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2963, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2164:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2966, - "nodeType": "ParameterList", - "parameters": [], - "src": "2204:0:25" - }, - "scope": 3021, - "src": "2132:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2974, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2969, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2240:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2968, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2240:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2971, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2256:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2970, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2256:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2239:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2973, - "nodeType": "ParameterList", - "parameters": [], - "src": "2279:0:25" - }, - "scope": 3021, - "src": "2207:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2981, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2976, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2318:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2975, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2318:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2978, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2334:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2334:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:34:25" - }, - "payable": false, - "returnParameters": { - "id": 2980, - "nodeType": "ParameterList", - "parameters": [], - "src": "2360:0:25" - }, - "scope": 3021, - "src": "2282:79:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2986, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2983, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2986, - "src": "2393:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2982, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2393:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2392:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2985, - "nodeType": "ParameterList", - "parameters": [], - "src": "2417:0:25" - }, - "scope": 3021, - "src": "2364:54:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2993, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2988, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2460:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2987, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2460:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2990, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2476:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2989, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2476:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2459:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [], - "src": "2500:0:25" - }, - "scope": 3021, - "src": "2420:81:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2998, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2995, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2998, - "src": "2537:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2994, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2537:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2536:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2997, - "nodeType": "ParameterList", - "parameters": [], - "src": "2561:0:25" - }, - "scope": 3021, - "src": "2503:59:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times anything has been called on this mock since last reset", - "id": 3003, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2999, - "nodeType": "ParameterList", - "parameters": [], - "src": "2691:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3001, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3003, - "src": "2712:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3000, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2712:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2711:6:25" - }, - "scope": 3021, - "src": "2667:51:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times the given method has been called on this mock since last reset\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it", - "id": 3010, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3005, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3005:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3004, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3005:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3004:14:25" - }, - "payable": false, - "returnParameters": { - "id": 3009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3008, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3037:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3007, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3037:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3036:6:25" - }, - "scope": 3021, - "src": "2971:72:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times this mock has been called with the exact calldata since last reset.\n@param calldata ABI encoded calldata (methodId and arguments)", - "id": 3017, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3263:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3011, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3263:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3262:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3015, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3297:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3014, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3297:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3296:6:25" - }, - "scope": 3021, - "src": "3227:76:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Resets all mocked methods and invocation counts.", - "id": 3020, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3018, - "nodeType": "ParameterList", - "parameters": [], - "src": "3389:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3019, - "nodeType": "ParameterList", - "parameters": [], - "src": "3400:0:25" - }, - "scope": 3021, - "src": "3375:26:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4001, - "src": "26:3377:25" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3022, - "name": "MockInterface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3021, - "src": "3478:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MockInterface_$3021", - "typeString": "contract MockInterface" - } - }, - "id": 3023, - "nodeType": "InheritanceSpecifier", - "src": "3478:13:25" - } - ], - "contractDependencies": [ - 3021 - ], - "contractKind": "contract", - "documentation": "Implementation of the MockInterface.", - "fullyImplemented": true, - "id": 4000, - "linearizedBaseContracts": [ - 4000, - 3021 - ], - "name": "MockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MockContract.MockType", - "id": 3027, - "members": [ - { - "id": 3024, - "name": "Return", - "nodeType": "EnumValue", - "src": "3511:6:25" - }, - { - "id": 3025, - "name": "Revert", - "nodeType": "EnumValue", - "src": "3519:6:25" - }, - { - "id": 3026, - "name": "OutOfGas", - "nodeType": "EnumValue", - "src": "3527:8:25" - } - ], - "name": "MockType", - "nodeType": "EnumDefinition", - "src": "3495:42:25" - }, - { - "constant": true, - "id": 3030, - "name": "MOCKS_LIST_START", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3541:50:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3028, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3541:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3584:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3033, - "name": "MOCKS_LIST_END", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3594:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes" - }, - "typeName": { - "id": 3031, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3594:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786666", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3633:6:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", - "typeString": "literal_string \"0xff\"" - }, - "value": "0xff" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3038, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3642:71:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3642:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3036, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "3698:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 3035, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3688:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3688:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3041, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3716:51:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3039, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3716:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3760:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 3045, - "name": "calldataMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3832:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3044, - "keyType": { - "id": 3042, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3840:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "3832:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3043, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3851:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3049, - "name": "calldataMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3874:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "typeName": { - "id": 3048, - "keyType": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3882:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3874:26:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3047, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "3891:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3053, - "name": "calldataExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3921:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "typeName": { - "id": 3052, - "keyType": { - "id": 3050, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3929:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3921:23:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "valueType": { - "id": 3051, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3938:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3057, - "name": "calldataRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3968:46:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "typeName": { - "id": 3056, - "keyType": { - "id": 3054, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3976:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3968:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "valueType": { - "id": 3055, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3985:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "calldataInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4017:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3060, - "keyType": { - "id": 3058, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4025:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4017:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3059, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4036:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3065, - "name": "methodIdMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4065:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "typeName": { - "id": 3064, - "keyType": { - "id": 3062, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4073:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4065:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "valueType": { - "id": 3063, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4083:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3069, - "name": "methodIdMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4107:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "typeName": { - "id": 3068, - "keyType": { - "id": 3066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4115:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4107:27:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3067, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4125:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3073, - "name": "methodIdExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4155:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "typeName": { - "id": 3072, - "keyType": { - "id": 3070, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4163:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4155:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "valueType": { - "id": 3071, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4173:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3077, - "name": "methodIdRevertMessages", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4203:48:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "typeName": { - "id": 3076, - "keyType": { - "id": 3074, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4211:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4203:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "valueType": { - "id": 3075, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4221:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3081, - "name": "methodIdInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4254:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3080, - "keyType": { - "id": 3078, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4262:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4254:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3079, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4273:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3083, - "name": "fallbackMockType", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4302:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "typeName": { - "contractScope": null, - "id": 3082, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4302:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3085, - "name": "fallbackExpectation", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4330:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes" - }, - "typeName": { - "id": 3084, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4330:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3087, - "name": "fallbackRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4358:28:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3086, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4358:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3089, - "name": "invocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4389:16:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3088, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4389:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3091, - "name": "resetCount", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4408:15:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3090, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4408:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3106, - "nodeType": "Block", - "src": "4448:114:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3094, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4452:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3096, - "indexExpression": { - "argumentTypes": null, - "id": 3095, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4466:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4452:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3097, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "4486:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "4452:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3099, - "nodeType": "ExpressionStatement", - "src": "4452:48:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3100, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4504:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3102, - "indexExpression": { - "argumentTypes": null, - "id": 3101, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4518:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4504:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3103, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4540:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4504:54:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3105, - "nodeType": "ExpressionStatement", - "src": "4504:54:25" - } - ] - }, - "documentation": null, - "id": 3107, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3092, - "nodeType": "ParameterList", - "parameters": [], - "src": "4438:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3093, - "nodeType": "ParameterList", - "parameters": [], - "src": "4448:0:25" - }, - "scope": 4000, - "src": "4427:135:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3140, - "nodeType": "Block", - "src": "4619:196:25", - "statements": [ - { - "assignments": [ - 3113 - ], - "declarations": [ - { - "constant": false, - "id": 3113, - "name": "callHash", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4623:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4623:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3117, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3115, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4652:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3114, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4642:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4642:15:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4623:34:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3118, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4665:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3120, - "indexExpression": { - "argumentTypes": null, - "id": 3119, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4679:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4665:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3121, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4665:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4699:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4665:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3139, - "nodeType": "IfStatement", - "src": "4661:151:25", - "trueBody": { - "id": 3138, - "nodeType": "Block", - "src": "4702:110:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3124, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4707:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3126, - "indexExpression": { - "argumentTypes": null, - "id": 3125, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4721:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4707:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3127, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4733:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3129, - "indexExpression": { - "argumentTypes": null, - "id": 3128, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4747:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4733:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "4707:57:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3131, - "nodeType": "ExpressionStatement", - "src": "4707:57:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3132, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4769:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3134, - "indexExpression": { - "argumentTypes": null, - "id": 3133, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4783:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4769:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3135, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4803:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "4769:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3137, - "nodeType": "ExpressionStatement", - "src": "4769:38:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3141, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackCalldataMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3109, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4592:17:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3108, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4592:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4591:19:25" - }, - "payable": false, - "returnParameters": { - "id": 3111, - "nodeType": "ParameterList", - "parameters": [], - "src": "4619:0:25" - }, - "scope": 4000, - "src": "4565:250:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3167, - "nodeType": "Block", - "src": "4870:161:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3146, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4878:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3148, - "indexExpression": { - "argumentTypes": null, - "id": 3147, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4892:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4878:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "4878:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3166, - "nodeType": "IfStatement", - "src": "4874:154:25", - "trueBody": { - "id": 3165, - "nodeType": "Block", - "src": "4910:118:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3151, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4915:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3153, - "indexExpression": { - "argumentTypes": null, - "id": 3152, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4929:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4915:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3154, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4941:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3156, - "indexExpression": { - "argumentTypes": null, - "id": 3155, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4955:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4941:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4915:59:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3158, - "nodeType": "ExpressionStatement", - "src": "4915:59:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3159, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4979:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3161, - "indexExpression": { - "argumentTypes": null, - "id": 3160, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4993:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4979:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3162, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "5015:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4979:44:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3164, - "nodeType": "ExpressionStatement", - "src": "4979:44:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3168, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackMethodIdMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3143, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3168, - "src": "4845:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3142, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4845:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4844:17:25" - }, - "payable": false, - "returnParameters": { - "id": 3145, - "nodeType": "ParameterList", - "parameters": [], - "src": "4870:0:25" - }, - "scope": 4000, - "src": "4818:213:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3182, - "nodeType": "Block", - "src": "5084:76:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3173, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5088:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3174, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5107:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5107:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5088:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3177, - "nodeType": "ExpressionStatement", - "src": "5088:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3178, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "5126:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3179, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3170, - "src": "5148:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "5126:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3181, - "nodeType": "ExpressionStatement", - "src": "5126:30:25" - } - ] - }, - "documentation": null, - "id": 3183, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3170, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3183, - "src": "5059:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3169, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5059:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5058:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [], - "src": "5084:0:25" - }, - "scope": 4000, - "src": "5034:126:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3192, - "nodeType": "Block", - "src": "5212:33:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3189, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "5232:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3188, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5216:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5216:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3191, - "nodeType": "ExpressionStatement", - "src": "5216:25:25" - } - ] - }, - "documentation": null, - "id": 3193, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3186, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3185, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3193, - "src": "5187:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3184, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5187:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5186:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3187, - "nodeType": "ParameterList", - "parameters": [], - "src": "5212:0:25" - }, - "scope": 4000, - "src": "5163:82:25", - "stateMutability": "nonpayable", - "superFunction": 2882, - "visibility": "external" - }, - { - "body": { - "id": 3211, - "nodeType": "Block", - "src": "5300:74:25", - "statements": [ - { - "assignments": [ - 3199 - ], - "declarations": [ - { - "constant": false, - "id": 3199, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5304:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3198, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5304:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3204, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3200, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3195, - "src": "5316:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5331:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5316:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5304:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3207, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3199, - "src": "5364:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3206, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5352:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5352:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3205, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5336:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5336:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3210, - "nodeType": "ExpressionStatement", - "src": "5336:34:25" - } - ] - }, - "documentation": null, - "id": 3212, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3195, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5276:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3194, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5276:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5275:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3197, - "nodeType": "ParameterList", - "parameters": [], - "src": "5300:0:25" - }, - "scope": 4000, - "src": "5248:126:25", - "stateMutability": "nonpayable", - "superFunction": 2887, - "visibility": "external" - }, - { - "body": { - "id": 3223, - "nodeType": "Block", - "src": "5429:47:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3219, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3214, - "src": "5461:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3218, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5449:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5449:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5433:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5433:38:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3222, - "nodeType": "ExpressionStatement", - "src": "5433:38:25" - } - ] - }, - "documentation": null, - "id": 3224, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3214, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3224, - "src": "5405:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3213, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5405:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5404:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3216, - "nodeType": "ParameterList", - "parameters": [], - "src": "5429:0:25" - }, - "scope": 4000, - "src": "5377:99:25", - "stateMutability": "nonpayable", - "superFunction": 2892, - "visibility": "external" - }, - { - "body": { - "id": 3235, - "nodeType": "Block", - "src": "5537:49:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3231, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3226, - "src": "5572:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3230, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "5557:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5557:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3229, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5541:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5541:41:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3234, - "nodeType": "ExpressionStatement", - "src": "5541:41:25" - } - ] - }, - "documentation": null, - "id": 3236, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3227, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3226, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "5510:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5510:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5509:18:25" - }, - "payable": false, - "returnParameters": { - "id": 3228, - "nodeType": "ParameterList", - "parameters": [], - "src": "5537:0:25" - }, - "scope": 4000, - "src": "5479:107:25", - "stateMutability": "nonpayable", - "superFunction": 2897, - "visibility": "external" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "5624:72:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3239, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5628:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3240, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5647:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5647:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5628:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3243, - "nodeType": "ExpressionStatement", - "src": "5628:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3244, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5666:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5690:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "5666:26:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3247, - "nodeType": "ExpressionStatement", - "src": "5666:26:25" - } - ] - }, - "documentation": null, - "id": 3249, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3237, - "nodeType": "ParameterList", - "parameters": [], - "src": "5612:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3238, - "nodeType": "ParameterList", - "parameters": [], - "src": "5624:0:25" - }, - "scope": 4000, - "src": "5589:107:25", - "stateMutability": "nonpayable", - "superFunction": 2900, - "visibility": "external" - }, - { - "body": { - "id": 3263, - "nodeType": "Block", - "src": "5759:77:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3254, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5763:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3255, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5782:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5782:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5763:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3258, - "nodeType": "ExpressionStatement", - "src": "5763:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3259, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5801:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3260, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "5825:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "5801:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3262, - "nodeType": "ExpressionStatement", - "src": "5801:31:25" - } - ] - }, - "documentation": null, - "id": 3264, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3264, - "src": "5734:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3250, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5734:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5733:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3253, - "nodeType": "ParameterList", - "parameters": [], - "src": "5759:0:25" - }, - "scope": 4000, - "src": "5699:137:25", - "stateMutability": "nonpayable", - "superFunction": 2905, - "visibility": "external" - }, - { - "body": { - "id": 3272, - "nodeType": "Block", - "src": "5879:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3267, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5883:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3268, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5902:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5902:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5883:36:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3271, - "nodeType": "ExpressionStatement", - "src": "5883:36:25" - } - ] - }, - "documentation": null, - "id": 3273, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3265, - "nodeType": "ParameterList", - "parameters": [], - "src": "5867:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3266, - "nodeType": "ParameterList", - "parameters": [], - "src": "5879:0:25" - }, - "scope": 4000, - "src": "5839:84:25", - "stateMutability": "nonpayable", - "superFunction": 2908, - "visibility": "external" - }, - { - "body": { - "id": 3297, - "nodeType": "Block", - "src": "5993:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3280, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "5997:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3282, - "indexExpression": { - "argumentTypes": null, - "id": 3281, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6015:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5997:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3283, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6023:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6023:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5997:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3286, - "nodeType": "ExpressionStatement", - "src": "5997:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3287, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "6042:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3289, - "indexExpression": { - "argumentTypes": null, - "id": 3288, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6063:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6042:26:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3290, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6071:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6042:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3292, - "nodeType": "ExpressionStatement", - "src": "6042:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3294, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6101:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3293, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6083:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6083:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3296, - "nodeType": "ExpressionStatement", - "src": "6083:23:25" - } - ] - }, - "documentation": null, - "id": 3298, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3275, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5956:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3274, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5956:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3277, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5968:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3276, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5968:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5955:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3279, - "nodeType": "ParameterList", - "parameters": [], - "src": "5993:0:25" - }, - "scope": 4000, - "src": "5926:184:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3310, - "nodeType": "Block", - "src": "6180:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3306, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3300, - "src": "6205:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3307, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "6211:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3305, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3298, - "src": "6184:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6184:36:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3309, - "nodeType": "ExpressionStatement", - "src": "6184:36:25" - } - ] - }, - "documentation": null, - "id": 3311, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3303, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3300, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6142:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3299, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6142:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3302, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6154:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3301, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6154:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6141:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3304, - "nodeType": "ParameterList", - "parameters": [], - "src": "6180:0:25" - }, - "scope": 4000, - "src": "6113:111:25", - "stateMutability": "nonpayable", - "superFunction": 2960, - "visibility": "external" - }, - { - "body": { - "id": 3332, - "nodeType": "Block", - "src": "6296:83:25", - "statements": [ - { - "assignments": [ - 3319 - ], - "declarations": [ - { - "constant": false, - "id": 3319, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6300:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3318, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6300:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3324, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3320, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "6312:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6312:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6323:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6300:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3326, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3313, - "src": "6351:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3328, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "6369:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3327, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6357:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6357:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3325, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6332:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6332:43:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3331, - "nodeType": "ExpressionStatement", - "src": "6332:43:25" - } - ] - }, - "documentation": null, - "id": 3333, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3313, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6260:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3312, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6260:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3315, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6272:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3314, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6272:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6259:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3317, - "nodeType": "ParameterList", - "parameters": [], - "src": "6296:0:25" - }, - "scope": 4000, - "src": "6227:152:25", - "stateMutability": "nonpayable", - "superFunction": 2967, - "visibility": "external" - }, - { - "body": { - "id": 3347, - "nodeType": "Block", - "src": "6451:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3341, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3335, - "src": "6474:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3343, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "6492:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3342, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6480:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6480:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3340, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6455:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6455:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3346, - "nodeType": "ExpressionStatement", - "src": "6455:47:25" - } - ] - }, - "documentation": null, - "id": 3348, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3335, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6415:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3334, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6415:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3337, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6427:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6427:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6414:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3339, - "nodeType": "ParameterList", - "parameters": [], - "src": "6451:0:25" - }, - "scope": 4000, - "src": "6382:124:25", - "stateMutability": "nonpayable", - "superFunction": 2974, - "visibility": "external" - }, - { - "body": { - "id": 3362, - "nodeType": "Block", - "src": "6584:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3356, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "6607:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3358, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3352, - "src": "6628:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3357, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "6613:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3355, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6588:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6588:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3361, - "nodeType": "ExpressionStatement", - "src": "6588:50:25" - } - ] - }, - "documentation": null, - "id": 3363, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3350, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6545:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3349, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6545:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3352, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6557:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3351, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6557:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6544:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3354, - "nodeType": "ParameterList", - "parameters": [], - "src": "6584:0:25" - }, - "scope": 4000, - "src": "6509:133:25", - "stateMutability": "nonpayable", - "superFunction": 2981, - "visibility": "external" - }, - { - "body": { - "id": 3393, - "nodeType": "Block", - "src": "6709:164:25", - "statements": [ - { - "assignments": [ - 3371 - ], - "declarations": [ - { - "constant": false, - "id": 3371, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6713:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3370, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "6713:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3375, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3373, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3365, - "src": "6743:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3372, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "6729:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6729:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6713:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3376, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "6752:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3378, - "indexExpression": { - "argumentTypes": null, - "id": 3377, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6770:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6752:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3379, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6780:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6780:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6752:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3382, - "nodeType": "ExpressionStatement", - "src": "6752:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3383, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "6799:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3385, - "indexExpression": { - "argumentTypes": null, - "id": 3384, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6820:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6799:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3386, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3367, - "src": "6830:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6799:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3388, - "nodeType": "ExpressionStatement", - "src": "6799:39:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3390, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6860:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3389, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "6842:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6842:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3392, - "nodeType": "ExpressionStatement", - "src": "6842:25:25" - } - ] - }, - "documentation": null, - "id": 3394, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3365, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6673:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3364, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6673:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3367, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6685:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3366, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6685:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6672:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [], - "src": "6709:0:25" - }, - "scope": 4000, - "src": "6645:228:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3406, - "nodeType": "Block", - "src": "6940:42:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3402, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "6963:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3403, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "6969:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3401, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6944:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6944:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3405, - "nodeType": "ExpressionStatement", - "src": "6944:34:25" - } - ] - }, - "documentation": null, - "id": 3407, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3396, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6903:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3395, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6903:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3398, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6915:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3397, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6915:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6902:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3400, - "nodeType": "ParameterList", - "parameters": [], - "src": "6940:0:25" - }, - "scope": 4000, - "src": "6876:106:25", - "stateMutability": "nonpayable", - "superFunction": 2915, - "visibility": "external" - }, - { - "body": { - "id": 3428, - "nodeType": "Block", - "src": "7052:83:25", - "statements": [ - { - "assignments": [ - 3415 - ], - "declarations": [ - { - "constant": false, - "id": 3415, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7056:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3414, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7056:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3420, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3416, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3411, - "src": "7068:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7083:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7068:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7079:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7056:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3422, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3409, - "src": "7107:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3424, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3415, - "src": "7125:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3423, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7113:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7113:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3421, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7088:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7088:43:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3427, - "nodeType": "ExpressionStatement", - "src": "7088:43:25" - } - ] - }, - "documentation": null, - "id": 3429, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3412, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3409, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7016:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3408, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7016:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3411, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7028:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3410, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7028:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7015:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3413, - "nodeType": "ParameterList", - "parameters": [], - "src": "7052:0:25" - }, - "scope": 4000, - "src": "6985:150:25", - "stateMutability": "nonpayable", - "superFunction": 2922, - "visibility": "external" - }, - { - "body": { - "id": 3443, - "nodeType": "Block", - "src": "7205:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3437, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "7228:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3439, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3433, - "src": "7246:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3438, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7234:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7234:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3436, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7209:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7209:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3442, - "nodeType": "ExpressionStatement", - "src": "7209:47:25" - } - ] - }, - "documentation": null, - "id": 3444, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3431, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7169:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3430, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7169:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3433, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3432, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7168:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3435, - "nodeType": "ParameterList", - "parameters": [], - "src": "7205:0:25" - }, - "scope": 4000, - "src": "7138:122:25", - "stateMutability": "nonpayable", - "superFunction": 2929, - "visibility": "external" - }, - { - "body": { - "id": 3458, - "nodeType": "Block", - "src": "7336:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3452, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "7359:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3454, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3448, - "src": "7380:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3453, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "7365:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7365:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3451, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7340:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7340:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3457, - "nodeType": "ExpressionStatement", - "src": "7340:50:25" - } - ] - }, - "documentation": null, - "id": 3459, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7297:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7297:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3448, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7309:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3447, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7309:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7296:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3450, - "nodeType": "ParameterList", - "parameters": [], - "src": "7336:0:25" - }, - "scope": 4000, - "src": "7263:131:25", - "stateMutability": "nonpayable", - "superFunction": 2936, - "visibility": "external" - }, - { - "body": { - "id": 3481, - "nodeType": "Block", - "src": "7447:112:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3464, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7451:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3466, - "indexExpression": { - "argumentTypes": null, - "id": 3465, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7469:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7451:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3467, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7477:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7477:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7451:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3470, - "nodeType": "ExpressionStatement", - "src": "7451:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3471, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7496:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3473, - "indexExpression": { - "argumentTypes": null, - "id": 3472, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7518:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7496:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7526:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "7496:32:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3476, - "nodeType": "ExpressionStatement", - "src": "7496:32:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3478, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7550:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3477, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7532:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7532:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3480, - "nodeType": "ExpressionStatement", - "src": "7532:23:25" - } - ] - }, - "documentation": null, - "id": 3482, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3461, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3482, - "src": "7426:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3460, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7426:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7425:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3463, - "nodeType": "ParameterList", - "parameters": [], - "src": "7447:0:25" - }, - "scope": 4000, - "src": "7397:162:25", - "stateMutability": "nonpayable", - "superFunction": 2986, - "visibility": "external" - }, - { - "body": { - "id": 3504, - "nodeType": "Block", - "src": "7610:121:25", - "statements": [ - { - "assignments": [ - 3488 - ], - "declarations": [ - { - "constant": false, - "id": 3488, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7614:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3487, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7614:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3490, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3484, - "src": "7644:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3489, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "7630:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7630:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7614:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3493, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "7653:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3495, - "indexExpression": { - "argumentTypes": null, - "id": 3494, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7671:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7653:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3496, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7681:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7681:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7653:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3499, - "nodeType": "ExpressionStatement", - "src": "7653:43:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3501, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7718:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3500, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "7700:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7700:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "7700:25:25" - } - ] - }, - "documentation": null, - "id": 3505, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3484, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7589:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3483, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7589:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7588:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3486, - "nodeType": "ParameterList", - "parameters": [], - "src": "7610:0:25" - }, - "scope": 4000, - "src": "7562:169:25", - "stateMutability": "nonpayable", - "superFunction": 2941, - "visibility": "external" - }, - { - "body": { - "id": 3529, - "nodeType": "Block", - "src": "7811:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3512, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7815:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3514, - "indexExpression": { - "argumentTypes": null, - "id": 3513, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7833:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7815:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3515, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7841:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7841:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7815:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3518, - "nodeType": "ExpressionStatement", - "src": "7815:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3519, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7860:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3521, - "indexExpression": { - "argumentTypes": null, - "id": 3520, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7882:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7860:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3522, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3509, - "src": "7890:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "7860:37:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3524, - "nodeType": "ExpressionStatement", - "src": "7860:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3526, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7919:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3525, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7901:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7901:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "7901:23:25" - } - ] - }, - "documentation": null, - "id": 3530, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3510, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3507, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7774:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3506, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7774:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3509, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7786:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3508, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7786:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7773:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3511, - "nodeType": "ParameterList", - "parameters": [], - "src": "7811:0:25" - }, - "scope": 4000, - "src": "7734:194:25", - "stateMutability": "nonpayable", - "superFunction": 2993, - "visibility": "external" - }, - { - "body": { - "id": 3560, - "nodeType": "Block", - "src": "8006:165:25", - "statements": [ - { - "assignments": [ - 3538 - ], - "declarations": [ - { - "constant": false, - "id": 3538, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "8010:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3537, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8010:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3542, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3540, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3532, - "src": "8040:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3539, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8026:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8026:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8010:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3543, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8049:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3545, - "indexExpression": { - "argumentTypes": null, - "id": 3544, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8067:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8049:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3546, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8077:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8077:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8049:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3549, - "nodeType": "ExpressionStatement", - "src": "8049:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3550, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "8096:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3552, - "indexExpression": { - "argumentTypes": null, - "id": 3551, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8119:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8096:30:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3553, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "8129:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "8096:40:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3555, - "nodeType": "ExpressionStatement", - "src": "8096:40:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8158:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3556, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8140:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8140:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3559, - "nodeType": "ExpressionStatement", - "src": "8140:25:25" - } - ] - }, - "documentation": null, - "id": 3561, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3535, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3532, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7969:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3531, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7969:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3534, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7981:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3533, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7981:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7968:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3536, - "nodeType": "ParameterList", - "parameters": [], - "src": "8006:0:25" - }, - "scope": 4000, - "src": "7931:240:25", - "stateMutability": "nonpayable", - "superFunction": 2948, - "visibility": "external" - }, - { - "body": { - "id": 3577, - "nodeType": "Block", - "src": "8229:78:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3566, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "8233:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3568, - "indexExpression": { - "argumentTypes": null, - "id": 3567, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8251:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8233:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3569, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8259:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3570, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8259:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8233:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3572, - "nodeType": "ExpressionStatement", - "src": "8233:43:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3574, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8298:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3573, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "8280:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8280:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3576, - "nodeType": "ExpressionStatement", - "src": "8280:23:25" - } - ] - }, - "documentation": null, - "id": 3578, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3564, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3563, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "8208:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3562, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8208:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8207:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3565, - "nodeType": "ParameterList", - "parameters": [], - "src": "8229:0:25" - }, - "scope": 4000, - "src": "8174:133:25", - "stateMutability": "nonpayable", - "superFunction": 2998, - "visibility": "external" - }, - { - "body": { - "id": 3600, - "nodeType": "Block", - "src": "8363:122:25", - "statements": [ - { - "assignments": [ - 3584 - ], - "declarations": [ - { - "constant": false, - "id": 3584, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8367:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3583, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8367:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3588, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3586, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3580, - "src": "8397:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3585, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8383:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8383:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8367:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3589, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8406:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3591, - "indexExpression": { - "argumentTypes": null, - "id": 3590, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8424:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8406:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3592, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8434:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8434:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8406:45:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3595, - "nodeType": "ExpressionStatement", - "src": "8406:45:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3597, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8473:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3596, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8455:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8455:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3599, - "nodeType": "ExpressionStatement", - "src": "8455:25:25" - } - ] - }, - "documentation": null, - "id": 3601, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3581, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3580, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8342:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3579, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8342:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8341:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3582, - "nodeType": "ParameterList", - "parameters": [], - "src": "8363:0:25" - }, - "scope": 4000, - "src": "8310:175:25", - "stateMutability": "nonpayable", - "superFunction": 2953, - "visibility": "external" - }, - { - "body": { - "id": 3608, - "nodeType": "Block", - "src": "8539:26:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3606, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "8550:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3605, - "id": 3607, - "nodeType": "Return", - "src": "8543:18:25" - } - ] - }, - "documentation": null, - "id": 3609, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "8512:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3604, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3609, - "src": "8533:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3603, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8533:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8532:6:25" - }, - "scope": 4000, - "src": "8488:77:25", - "stateMutability": "nonpayable", - "superFunction": 3003, - "visibility": "external" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "8638:122:25", - "statements": [ - { - "assignments": [ - 3617 - ], - "declarations": [ - { - "constant": false, - "id": 3617, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8642:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3616, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8642:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3621, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3619, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "8672:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3618, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8658:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8658:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8642:35:25" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3622, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "8688:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3630, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3626, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8735:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3627, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3617, - "src": "8747:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 3624, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8718:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3625, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8718:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8718:36:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3623, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8708:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8708:47:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8688:68:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3615, - "id": 3631, - "nodeType": "Return", - "src": "8681:75:25" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3612, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3611, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8602:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3610, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8602:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8601:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3615, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3614, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8632:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3613, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8632:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8631:6:25" - }, - "scope": 4000, - "src": "8568:192:25", - "stateMutability": "nonpayable", - "superFunction": 3010, - "visibility": "external" - }, - { - "body": { - "id": 3650, - "nodeType": "Block", - "src": "8835:81:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3640, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "8846:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3648, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8893:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3635, - "src": "8905:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 3642, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8876:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8876:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8876:34:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3641, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8866:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8866:45:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8846:66:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3639, - "id": 3649, - "nodeType": "Return", - "src": "8839:73:25" - } - ] - }, - "documentation": null, - "id": 3651, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3636, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3635, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8799:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3634, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8799:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8798:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3638, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8829:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3637, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8829:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8828:6:25" - }, - "scope": 4000, - "src": "8763:153:25", - "stateMutability": "nonpayable", - "superFunction": 3017, - "visibility": "external" - }, - { - "body": { - "id": 3783, - "nodeType": "Block", - "src": "8945:1265:25", - "statements": [ - { - "assignments": [ - 3655 - ], - "declarations": [ - { - "constant": false, - "id": 3655, - "name": "nextMock", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "8984:21:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3654, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8984:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3659, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3656, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9008:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3658, - "indexExpression": { - "argumentTypes": null, - "id": 3657, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9022:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9008:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8984:55:25" - }, - { - "assignments": [ - 3661 - ], - "declarations": [ - { - "constant": false, - "id": 3661, - "name": "mockHash", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9043:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3660, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9043:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3665, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3663, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9072:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3662, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9062:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9062:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9043:38:25" - }, - { - "body": { - "id": 3706, - "nodeType": "Block", - "src": "9153:355:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3669, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "9184:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3671, - "indexExpression": { - "argumentTypes": null, - "id": 3670, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9202:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9184:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3672, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9214:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9214:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "9184:45:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3675, - "nodeType": "ExpressionStatement", - "src": "9184:45:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3676, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "9234:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3678, - "indexExpression": { - "argumentTypes": null, - "id": 3677, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9255:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9234:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9267:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9234:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3681, - "nodeType": "ExpressionStatement", - "src": "9234:38:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3682, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "9277:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3684, - "indexExpression": { - "argumentTypes": null, - "id": 3683, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9299:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9277:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9311:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9277:36:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3687, - "nodeType": "ExpressionStatement", - "src": "9277:36:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9348:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3689, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9359:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3691, - "indexExpression": { - "argumentTypes": null, - "id": 3690, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9373:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9359:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "9348:34:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3693, - "nodeType": "ExpressionStatement", - "src": "9348:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3694, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9417:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3696, - "indexExpression": { - "argumentTypes": null, - "id": 3695, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9431:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9417:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9443:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9417:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "9417:28:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9473:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3702, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9494:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3701, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9484:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9484:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9473:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3705, - "nodeType": "ExpressionStatement", - "src": "9473:30:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 3668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3666, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9120:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 3667, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "9132:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9120:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3707, - "nodeType": "WhileStatement", - "src": "9114:394:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3708, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9527:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3710, - "indexExpression": { - "argumentTypes": null, - "id": 3709, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9541:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9527:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3711, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "9561:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "9527:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3713, - "nodeType": "ExpressionStatement", - "src": "9527:48:25" - }, - { - "assignments": [ - 3715 - ], - "declarations": [ - { - "constant": false, - "id": 3715, - "name": "nextAnyMock", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9613:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3714, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "9613:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3719, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3716, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9634:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3718, - "indexExpression": { - "argumentTypes": null, - "id": 3717, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9648:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9634:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9613:54:25" - }, - { - "body": { - "id": 3758, - "nodeType": "Block", - "src": "9712:316:25", - "statements": [ - { - "assignments": [ - 3724 - ], - "declarations": [ - { - "constant": false, - "id": 3724, - "name": "currentAnyMock", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9717:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3723, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "9717:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3726, - "initialValue": { - "argumentTypes": null, - "id": 3725, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9741:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9717:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3727, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "9757:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3729, - "indexExpression": { - "argumentTypes": null, - "id": 3728, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9775:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9757:33:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9793:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9793:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "9757:51:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3733, - "nodeType": "ExpressionStatement", - "src": "9757:51:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3734, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "9813:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "id": 3735, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9834:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9813:36:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9852:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9813:44:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3739, - "nodeType": "ExpressionStatement", - "src": "9813:44:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3740, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "9862:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3742, - "indexExpression": { - "argumentTypes": null, - "id": 3741, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9885:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9862:38:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3743, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9903:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9862:43:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3745, - "nodeType": "ExpressionStatement", - "src": "9862:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3746, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9910:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9924:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9938:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9924:29:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "9910:43:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3751, - "nodeType": "ExpressionStatement", - "src": "9910:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3752, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9988:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3754, - "indexExpression": { - "argumentTypes": null, - "id": 3753, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "10002:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9988:29:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10020:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "9988:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3757, - "nodeType": "ExpressionStatement", - "src": "9988:35:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3720, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9677:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 3721, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9692:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "9677:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3759, - "nodeType": "WhileStatement", - "src": "9671:357:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3760, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "10047:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3762, - "indexExpression": { - "argumentTypes": null, - "id": 3761, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10061:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10047:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3763, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10083:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10047:54:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3765, - "nodeType": "ExpressionStatement", - "src": "10047:54:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3766, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "10106:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10128:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10106:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3769, - "nodeType": "ExpressionStatement", - "src": "10106:24:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3770, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "10134:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3771, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "10153:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10153:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "10134:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3774, - "nodeType": "ExpressionStatement", - "src": "10134:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3775, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "10172:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 3776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10186:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10172:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3778, - "nodeType": "ExpressionStatement", - "src": "10172:15:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3779, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "10191:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10205:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10191:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3782, - "nodeType": "ExpressionStatement", - "src": "10191:15:25" - } - ] - }, - "documentation": null, - "id": 3784, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3652, - "nodeType": "ParameterList", - "parameters": [], - "src": "8933:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3653, - "nodeType": "ParameterList", - "parameters": [], - "src": "8945:0:25" - }, - "scope": 4000, - "src": "8919:1291:25", - "stateMutability": "nonpayable", - "superFunction": 3020, - "visibility": "external" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "10242:157:25", - "statements": [ - { - "body": { - "id": 3792, - "nodeType": "Block", - "src": "10258:138:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3789, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "10263:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3788, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10263:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3790, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10263:6:25" - }, - { - "externalReferences": [ - { - "s": { - "declaration": 3789, - "isOffset": false, - "isSlot": false, - "src": "10334:1:25", - "valueSize": 1 - } - } - ], - "id": 3791, - "nodeType": "InlineAssembly", - "operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}", - "src": "10274:122:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10252:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "id": 3793, - "nodeType": "WhileStatement", - "src": "10246:150:25" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "useAllGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3785, - "nodeType": "ParameterList", - "parameters": [], - "src": "10231:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [], - "src": "10242:0:25" - }, - "scope": 4000, - "src": "10213:186:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3834, - "nodeType": "Block", - "src": "10464:122:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3803, - "name": "out", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10470:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3802, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10470:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3804, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10470:10:25" - }, - { - "body": { - "id": 3830, - "nodeType": "Block", - "src": "10515:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3815, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10523:3:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "id": 3821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3817, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "10537:1:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3819, - "indexExpression": { - "argumentTypes": null, - "id": 3818, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10539:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10537:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30784646", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10544:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "value": "0xFF" - }, - "src": "10537:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - ], - "id": 3816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10530:6:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 3822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10530:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3823, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10554:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "38", - "id": 3824, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10558:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "10554:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3826, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10553:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10530:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10523:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3829, - "nodeType": "ExpressionStatement", - "src": "10523:37:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3809, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10503:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 3810, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10507:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "10503:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3831, - "initializationExpression": { - "assignments": [ - 3806 - ], - "declarations": [ - { - "constant": false, - "id": 3806, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10491:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3805, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10491:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3808, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3807, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10500:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10491:10:25" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10510:3:25", - "subExpression": { - "argumentTypes": null, - "id": 3812, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10510:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3814, - "nodeType": "ExpressionStatement", - "src": "10510:3:25" - }, - "nodeType": "ForStatement", - "src": "10486:81:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3832, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10579:3:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "functionReturnParameters": 3801, - "id": 3833, - "nodeType": "Return", - "src": "10572:10:25" - } - ] - }, - "documentation": null, - "id": 3835, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "bytesToBytes4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3798, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10425:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3796, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10425:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10424:9:25" - }, - "payable": false, - "returnParameters": { - "id": 3801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3800, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10456:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3799, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10456:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10455:8:25" - }, - "scope": 4000, - "src": "10402:184:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3843, - "nodeType": "Block", - "src": "10654:189:25", - "statements": [ - { - "externalReferences": [ - { - "b": { - "declaration": 3840, - "isOffset": false, - "isSlot": false, - "src": "10827:1:25", - "valueSize": 1 - } - }, - { - "a": { - "declaration": 3837, - "isOffset": false, - "isSlot": false, - "src": "10780:1:25", - "valueSize": 1 - } - } - ], - "id": 3842, - "nodeType": "InlineAssembly", - "operations": "{\n let m := mload(0x40)\n mstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n mstore(0x40, add(m, 52))\n b := m\n}", - "src": "10661:182:25" - } - ] - }, - "documentation": null, - "id": 3844, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "addressToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3837, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10613:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3836, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10613:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10612:11:25" - }, - "payable": false, - "returnParameters": { - "id": 3841, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3840, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10646:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3839, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10646:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10645:9:25" - }, - "scope": 4000, - "src": "10589:254:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3859, - "nodeType": "Block", - "src": "10909:68:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3851, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3849, - "src": "10916:1:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 3854, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10930:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "id": 3853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "10920:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 3852, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10924:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10920:13:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "10916:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3857, - "nodeType": "ExpressionStatement", - "src": "10916:17:25" - }, - { - "externalReferences": [ - { - "x": { - "declaration": 3846, - "isOffset": false, - "isSlot": false, - "src": "10970:1:25", - "valueSize": 1 - } - }, - { - "b": { - "declaration": 3849, - "isOffset": false, - "isSlot": false, - "src": "10962:1:25", - "valueSize": 1 - } - } - ], - "id": 3858, - "nodeType": "InlineAssembly", - "operations": "{\n mstore(add(b, 32), x)\n}", - "src": "10940:37:25" - } - ] - }, - "documentation": null, - "id": 3860, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "uintToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3847, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3846, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10867:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3845, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10867:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10866:11:25" - }, - "payable": false, - "returnParameters": { - "id": 3850, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3849, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10900:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3848, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10900:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10899:9:25" - }, - "scope": 4000, - "src": "10846:131:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3998, - "nodeType": "Block", - "src": "11008:1178:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3864, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11012:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3863, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11012:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3865, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "11012:15:25" - }, - { - "externalReferences": [ - { - "methodId": { - "declaration": 3864, - "isOffset": false, - "isSlot": false, - "src": "11045:8:25", - "valueSize": 1 - } - } - ], - "id": 3866, - "nodeType": "InlineAssembly", - "operations": "{\n methodId := calldataload(0)\n}", - "src": "11031:94:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3867, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11127:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3870, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3868, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11145:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11145:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11127:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3871, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11158:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11158:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11127:46:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3882, - "nodeType": "IfStatement", - "src": "11123:101:25", - "trueBody": { - "id": 3881, - "nodeType": "Block", - "src": "11175:49:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3875, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "11187:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3878, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3876, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11209:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11209:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11187:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 3874, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "11180:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11180:39:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3880, - "nodeType": "ExpressionStatement", - "src": "11180:39:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3883, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11231:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3886, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3884, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11249:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11249:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11231:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3887, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11262:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11262:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11231:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3894, - "nodeType": "IfStatement", - "src": "11227:75:25", - "trueBody": { - "id": 3893, - "nodeType": "Block", - "src": "11281:21:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3890, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11286:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11286:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3892, - "nodeType": "ExpressionStatement", - "src": "11286:11:25" - } - ] - } - }, - { - "assignments": [ - 3896 - ], - "declarations": [ - { - "constant": false, - "id": 3896, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11305:19:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3895, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11305:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3901, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3897, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "11327:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3900, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3898, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11348:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11348:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11327:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11305:52:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3902, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11402:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11402:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11419:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11402:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3938, - "nodeType": "IfStatement", - "src": "11398:262:25", - "trueBody": { - "id": 3937, - "nodeType": "Block", - "src": "11422:238:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3906, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11431:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3908, - "indexExpression": { - "argumentTypes": null, - "id": 3907, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11449:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11431:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3909, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11462:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3910, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11462:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11431:46:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3919, - "nodeType": "IfStatement", - "src": "11427:104:25", - "trueBody": { - "id": 3918, - "nodeType": "Block", - "src": "11479:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3913, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "11492:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3915, - "indexExpression": { - "argumentTypes": null, - "id": 3914, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11515:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11492:32:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 3912, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "11485:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11485:40:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "11485:40:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3920, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11539:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3922, - "indexExpression": { - "argumentTypes": null, - "id": 3921, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11557:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11539:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3923, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11570:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11570:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11539:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3930, - "nodeType": "IfStatement", - "src": "11535:77:25", - "trueBody": { - "id": 3929, - "nodeType": "Block", - "src": "11589:23:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3926, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11595:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11595:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3928, - "nodeType": "ExpressionStatement", - "src": "11595:11:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3931, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11616:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3932, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "11625:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3934, - "indexExpression": { - "argumentTypes": null, - "id": 3933, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11646:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11625:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "11616:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3936, - "nodeType": "ExpressionStatement", - "src": "11616:39:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3939, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11705:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11705:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3941, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11722:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11705:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3967, - "nodeType": "IfStatement", - "src": "11701:218:25", - "trueBody": { - "id": 3966, - "nodeType": "Block", - "src": "11725:194:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3943, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11734:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3944, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11754:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11754:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11734:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3952, - "nodeType": "IfStatement", - "src": "11730:82:25", - "trueBody": { - "id": 3951, - "nodeType": "Block", - "src": "11771:41:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3948, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "11784:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 3947, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "11777:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11777:29:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3950, - "nodeType": "ExpressionStatement", - "src": "11777:29:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3953, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11820:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3954, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11840:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3955, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11840:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11820:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3961, - "nodeType": "IfStatement", - "src": "11816:66:25", - "trueBody": { - "id": 3960, - "nodeType": "Block", - "src": "11859:23:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3957, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11865:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11865:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3959, - "nodeType": "ExpressionStatement", - "src": "11865:11:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3962, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11886:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3963, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "11895:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "11886:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3965, - "nodeType": "ExpressionStatement", - "src": "11886:28:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3968, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "11946:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3969, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11961:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11946:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3971, - "nodeType": "ExpressionStatement", - "src": "11946:16:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3972, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "11966:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3980, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3976, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12013:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3977, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "12025:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 3974, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "11996:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11996:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11996:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3973, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "11986:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11986:49:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11966:70:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3981, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12040:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11966:75:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3983, - "nodeType": "ExpressionStatement", - "src": "11966:75:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3984, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "12045:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3993, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3988, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12092:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3989, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "12104:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12104:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 3986, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12075:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3987, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12075:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12075:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3985, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12065:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12065:49:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12045:70:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12119:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12045:75:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3996, - "nodeType": "ExpressionStatement", - "src": "12045:75:25" - }, - { - "externalReferences": [ - { - "result": { - "declaration": 3896, - "isOffset": false, - "isSlot": false, - "src": "12156:6:25", - "valueSize": 1 - } - }, - { - "result": { - "declaration": 3896, - "isOffset": false, - "isSlot": false, - "src": "12171:6:25", - "valueSize": 1 - } - } - ], - "id": 3997, - "nodeType": "InlineAssembly", - "operations": "{\n return(add(0x20, result), mload(result))\n}", - "src": "12125:61:25" - } - ] - }, - "documentation": null, - "id": 3999, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3861, - "nodeType": "ParameterList", - "parameters": [], - "src": "10988:2:25" - }, - "payable": true, - "returnParameters": { - "id": 3862, - "nodeType": "ParameterList", - "parameters": [], - "src": "11008:0:25" - }, - "scope": 4000, - "src": "10980:1206:25", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4001, - "src": "3453:8735:25" - } - ], - "src": "0:12189:25" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.946Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/MockInterface.json b/safe-contracts/build/contracts/MockInterface.json deleted file mode 100644 index 733a0f8f..00000000 --- a/safe-contracts/build/contracts/MockInterface.json +++ /dev/null @@ -1,28389 +0,0 @@ -{ - "contractName": "MockInterface", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "bytes" - } - ], - "name": "givenAnyReturn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "bool" - } - ], - "name": "givenAnyReturnBool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "uint256" - } - ], - "name": "givenAnyReturnUint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "address" - } - ], - "name": "givenAnyReturnAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "givenAnyRevert", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "message", - "type": "string" - } - ], - "name": "givenAnyRevertWithMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "givenAnyRunOutOfGas", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - }, - { - "name": "response", - "type": "bytes" - } - ], - "name": "givenMethodReturn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - }, - { - "name": "response", - "type": "bool" - } - ], - "name": "givenMethodReturnBool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - }, - { - "name": "response", - "type": "uint256" - } - ], - "name": "givenMethodReturnUint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - }, - { - "name": "response", - "type": "address" - } - ], - "name": "givenMethodReturnAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - } - ], - "name": "givenMethodRevert", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - }, - { - "name": "message", - "type": "string" - } - ], - "name": "givenMethodRevertWithMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - } - ], - "name": "givenMethodRunOutOfGas", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "calldata", - "type": "bytes" - }, - { - "name": "response", - "type": "bytes" - } - ], - "name": "givenCalldataReturn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "calldata", - "type": "bytes" - }, - { - "name": "response", - "type": "bool" - } - ], - "name": "givenCalldataReturnBool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "calldata", - "type": "bytes" - }, - { - "name": "response", - "type": "uint256" - } - ], - "name": "givenCalldataReturnUint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "calldata", - "type": "bytes" - }, - { - "name": "response", - "type": "address" - } - ], - "name": "givenCalldataReturnAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "calldata", - "type": "bytes" - } - ], - "name": "givenCalldataRevert", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "calldata", - "type": "bytes" - }, - { - "name": "message", - "type": "string" - } - ], - "name": "givenCalldataRevertWithMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "calldata", - "type": "bytes" - } - ], - "name": "givenCalldataRunOutOfGas", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "invocationCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - } - ], - "name": "invocationCountForMethod", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "calldata", - "type": "bytes" - } - ], - "name": "invocationCountForCalldata", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "reset", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.4.23;\n\ninterface MockInterface {\n\t/**\n\t * @dev After calling this method, the mock will return `response` when it is called\n\t * with any calldata that is not mocked more specifically below\n\t * (e.g. using givenMethodReturn).\n\t * @param response ABI encoded response that will be returned if method is invoked\n\t */\n\tfunction givenAnyReturn(bytes response) external;\n\tfunction givenAnyReturnBool(bool response) external;\n\tfunction givenAnyReturnUint(uint response) external;\n\tfunction givenAnyReturnAddress(address response) external;\n\n\tfunction givenAnyRevert() external;\n\tfunction givenAnyRevertWithMessage(string message) external;\n\tfunction givenAnyRunOutOfGas() external;\n\n\t/**\n\t * @dev After calling this method, the mock will return `response` when the given\n\t * methodId is called regardless of arguments. If the methodId and arguments\n\t * are mocked more specifically (using `givenMethodAndArguments`) the latter\n\t * will take precedence.\n\t * @param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n\t * @param response ABI encoded response that will be returned if method is invoked\n\t */\n\tfunction givenMethodReturn(bytes method, bytes response) external;\n\tfunction givenMethodReturnBool(bytes method, bool response) external;\n\tfunction givenMethodReturnUint(bytes method, uint response) external;\n\tfunction givenMethodReturnAddress(bytes method, address response) external;\n\n\tfunction givenMethodRevert(bytes method) external;\n\tfunction givenMethodRevertWithMessage(bytes method, string message) external;\n\tfunction givenMethodRunOutOfGas(bytes method) external;\n\n\t/**\n\t * @dev After calling this method, the mock will return `response` when the given\n\t * methodId is called with matching arguments. These exact calldataMocks will take\n\t * precedence over all other calldataMocks.\n\t * @param calldata ABI encoded calldata (methodId and arguments)\n\t * @param response ABI encoded response that will be returned if contract is invoked with calldata\n\t */\n\tfunction givenCalldataReturn(bytes calldata, bytes response) external;\n\tfunction givenCalldataReturnBool(bytes calldata, bool response) external;\n\tfunction givenCalldataReturnUint(bytes calldata, uint response) external;\n\tfunction givenCalldataReturnAddress(bytes calldata, address response) external;\n\n\tfunction givenCalldataRevert(bytes calldata) external;\n\tfunction givenCalldataRevertWithMessage(bytes calldata, string message) external;\n\tfunction givenCalldataRunOutOfGas(bytes calldata) external;\n\n\t/**\n\t * @dev Returns the number of times anything has been called on this mock since last reset\n\t */\n\tfunction invocationCount() external returns (uint);\n\n\t/**\n\t * @dev Returns the number of times the given method has been called on this mock since last reset\n\t * @param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n\t */\n\tfunction invocationCountForMethod(bytes method) external returns (uint);\n\n\t/**\n\t * @dev Returns the number of times this mock has been called with the exact calldata since last reset.\n\t * @param calldata ABI encoded calldata (methodId and arguments)\n\t */\n\tfunction invocationCountForCalldata(bytes calldata) external returns (uint);\n\n\t/**\n\t * @dev Resets all mocked methods and invocation counts.\n\t */\n\t function reset() external;\n}\n\n/**\n * Implementation of the MockInterface.\n */\ncontract MockContract is MockInterface {\n\tenum MockType { Return, Revert, OutOfGas }\n\t\n\tbytes32 public constant MOCKS_LIST_START = hex\"01\";\n\tbytes public constant MOCKS_LIST_END = \"0xff\";\n\tbytes32 public constant MOCKS_LIST_END_HASH = keccak256(MOCKS_LIST_END);\n\tbytes4 public constant SENTINEL_ANY_MOCKS = hex\"01\";\n\n\t// A linked list allows easy iteration and inclusion checks\n\tmapping(bytes32 => bytes) calldataMocks;\n\tmapping(bytes => MockType) calldataMockTypes;\n\tmapping(bytes => bytes) calldataExpectations;\n\tmapping(bytes => string) calldataRevertMessage;\n\tmapping(bytes32 => uint) calldataInvocations;\n\n\tmapping(bytes4 => bytes4) methodIdMocks;\n\tmapping(bytes4 => MockType) methodIdMockTypes;\n\tmapping(bytes4 => bytes) methodIdExpectations;\n\tmapping(bytes4 => string) methodIdRevertMessages;\n\tmapping(bytes32 => uint) methodIdInvocations;\n\n\tMockType fallbackMockType;\n\tbytes fallbackExpectation;\n\tstring fallbackRevertMessage;\n\tuint invocations;\n\tuint resetCount;\n\n\tconstructor() public {\n\t\tcalldataMocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\t}\n\n\tfunction trackCalldataMock(bytes memory call) private {\n\t\tbytes32 callHash = keccak256(call);\n\t\tif (calldataMocks[callHash].length == 0) {\n\t\t\tcalldataMocks[callHash] = calldataMocks[MOCKS_LIST_START];\n\t\t\tcalldataMocks[MOCKS_LIST_START] = call;\n\t\t}\n\t}\n\n\tfunction trackMethodIdMock(bytes4 methodId) private {\n\t\tif (methodIdMocks[methodId] == 0x0) {\n\t\t\tmethodIdMocks[methodId] = methodIdMocks[SENTINEL_ANY_MOCKS];\n\t\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = methodId;\n\t\t}\n\t}\n\n\tfunction _givenAnyReturn(bytes response) internal {\n\t\tfallbackMockType = MockType.Return;\n\t\tfallbackExpectation = response;\n\t}\n\n\tfunction givenAnyReturn(bytes response) external {\n\t\t_givenAnyReturn(response);\n\t}\n\n\tfunction givenAnyReturnBool(bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenAnyReturn(uintToBytes(flag));\n\t}\n\n\tfunction givenAnyReturnUint(uint response) external {\n\t\t_givenAnyReturn(uintToBytes(response));\t\n\t}\n\n\tfunction givenAnyReturnAddress(address response) external {\n\t\t_givenAnyReturn(addressToBytes(response));\n\t}\n\n\tfunction givenAnyRevert() external {\n\t\tfallbackMockType = MockType.Revert;\n\t\tfallbackRevertMessage = \"\";\n\t}\n\n\tfunction givenAnyRevertWithMessage(string message) external {\n\t\tfallbackMockType = MockType.Revert;\n\t\tfallbackRevertMessage = message;\n\t}\n\n\tfunction givenAnyRunOutOfGas() external {\n\t\tfallbackMockType = MockType.OutOfGas;\n\t}\n\n\tfunction _givenCalldataReturn(bytes call, bytes response) private {\n\t\tcalldataMockTypes[call] = MockType.Return;\n\t\tcalldataExpectations[call] = response;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenCalldataReturn(bytes call, bytes response) external {\n\t\t_givenCalldataReturn(call, response);\n\t}\n\n\tfunction givenCalldataReturnBool(bytes call, bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenMethodReturn(call, uintToBytes(flag));\n\t}\n\n\tfunction givenCalldataReturnUint(bytes call, uint response) external {\n\t\t_givenMethodReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenCalldataReturnAddress(bytes call, address response) external {\n\t\t_givenMethodReturn(call, addressToBytes(response));\n\t}\n\n\tfunction _givenMethodReturn(bytes call, bytes response) private {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Return;\n\t\tmethodIdExpectations[method] = response;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenMethodReturn(bytes call, bytes response) external {\n\t\t_givenMethodReturn(call, response);\n\t}\n\n\tfunction givenMethodReturnBool(bytes call, bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenMethodReturn(call, uintToBytes(flag));\n\t}\n\n\tfunction givenMethodReturnUint(bytes call, uint response) external {\n\t\t_givenMethodReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenMethodReturnAddress(bytes call, address response) external {\n\t\t_givenMethodReturn(call, addressToBytes(response));\n\t}\n\n\tfunction givenCalldataRevert(bytes call) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = \"\";\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevert(bytes call) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Revert;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenCalldataRevertWithMessage(bytes call, string message) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = message;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevertWithMessage(bytes call, string message) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Revert;\n\t\tmethodIdRevertMessages[method] = message;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenCalldataRunOutOfGas(bytes call) external {\n\t\tcalldataMockTypes[call] = MockType.OutOfGas;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRunOutOfGas(bytes call) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.OutOfGas;\n\t\ttrackMethodIdMock(method);\t\n\t}\n\n\tfunction invocationCount() external returns (uint) {\n\t\treturn invocations;\n\t}\n\n\tfunction invocationCountForMethod(bytes call) external returns (uint) {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\treturn methodIdInvocations[keccak256(abi.encodePacked(resetCount, method))];\n\t}\n\n\tfunction invocationCountForCalldata(bytes call) external returns (uint) {\n\t\treturn calldataInvocations[keccak256(abi.encodePacked(resetCount, call))];\n\t}\n\n\tfunction reset() external {\n\t\t// Reset all exact calldataMocks\n\t\tbytes memory nextMock = calldataMocks[MOCKS_LIST_START];\n\t\tbytes32 mockHash = keccak256(nextMock);\n\t\t// We cannot compary bytes\n\t\twhile(mockHash != MOCKS_LIST_END_HASH) {\n\t\t\t// Reset all mock maps\n\t\t\tcalldataMockTypes[nextMock] = MockType.Return;\n\t\t\tcalldataExpectations[nextMock] = hex\"\";\n\t\t\tcalldataRevertMessage[nextMock] = \"\";\n\t\t\t// Set next mock to remove\n\t\t\tnextMock = calldataMocks[mockHash];\n\t\t\t// Remove from linked list\n\t\t\tcalldataMocks[mockHash] = \"\";\n\t\t\t// Update mock hash\n\t\t\tmockHash = keccak256(nextMock);\n\t\t}\n\t\t// Clear list\n\t\tcalldataMocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\n\t\t// Reset all any calldataMocks\n\t\tbytes4 nextAnyMock = methodIdMocks[SENTINEL_ANY_MOCKS];\n\t\twhile(nextAnyMock != SENTINEL_ANY_MOCKS) {\n\t\t\tbytes4 currentAnyMock = nextAnyMock;\n\t\t\tmethodIdMockTypes[currentAnyMock] = MockType.Return;\n\t\t\tmethodIdExpectations[currentAnyMock] = hex\"\";\n\t\t\tmethodIdRevertMessages[currentAnyMock] = \"\";\n\t\t\tnextAnyMock = methodIdMocks[currentAnyMock];\n\t\t\t// Remove from linked list\n\t\t\tmethodIdMocks[currentAnyMock] = 0x0;\n\t\t}\n\t\t// Clear list\n\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\n\t\tfallbackExpectation = \"\";\n\t\tfallbackMockType = MockType.Return;\n\t\tinvocations = 0;\n\t\tresetCount += 1;\n\t}\n\n\tfunction useAllGas() private {\n\t\twhile(true) {\n\t\t\tbool s;\n\t\t\tassembly {\n\t\t\t\t//expensive call to EC multiply contract\n\t\t\t\ts := call(sub(gas, 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction bytesToBytes4(bytes b) private pure returns (bytes4) {\n \t\tbytes4 out;\n \t\tfor (uint i = 0; i < 4; i++) {\n \t\tout |= bytes4(b[i] & 0xFF) >> (i * 8);\n \t\t}\n \t\treturn out;\n\t}\n\n\tfunction addressToBytes(address a) private pure returns (bytes b){\n \t\tassembly {\n \tlet m := mload(0x40)\n \tmstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n \tmstore(0x40, add(m, 52))\n \tb := m\n \t\t}\n\t}\n\n\tfunction uintToBytes(uint256 x) private pure returns (bytes b) {\n \tb = new bytes(32);\n \tassembly { mstore(add(b, 32), x) }\n\t}\n\n\tfunction() payable external {\n\t\tbytes4 methodId;\n\t\tassembly {\n\t\t\tmethodId := calldataload(0)\n\t\t}\n\n\t\t// First, check exact matching overrides\n\t\tif (calldataMockTypes[msg.data] == MockType.Revert) {\n\t\t\trevert(calldataRevertMessage[msg.data]);\n\t\t}\n\t\tif (calldataMockTypes[msg.data] == MockType.OutOfGas) {\n\t\t\tuseAllGas();\n\t\t}\n\t\tbytes memory result = calldataExpectations[msg.data];\n\n\t\t// Then check method Id overrides\n\t\tif (result.length == 0) {\n\t\t\tif (methodIdMockTypes[methodId] == MockType.Revert) {\n\t\t\t\trevert(methodIdRevertMessages[methodId]);\n\t\t\t}\n\t\t\tif (methodIdMockTypes[methodId] == MockType.OutOfGas) {\n\t\t\t\tuseAllGas();\n\t\t\t}\n\t\t\tresult = methodIdExpectations[methodId];\n\t\t}\n\n\t\t// Last, use the fallback override\n\t\tif (result.length == 0) {\n\t\t\tif (fallbackMockType == MockType.Revert) {\n\t\t\t\trevert(fallbackRevertMessage);\n\t\t\t}\n\t\t\tif (fallbackMockType == MockType.OutOfGas) {\n\t\t\t\tuseAllGas();\n\t\t\t}\n\t\t\tresult = fallbackExpectation;\n\t\t}\n\n\t\t// Record invocation\n\t\tinvocations += 1;\n\t\tmethodIdInvocations[keccak256(abi.encodePacked(resetCount, methodId))] += 1;\n\t\tcalldataInvocations[keccak256(abi.encodePacked(resetCount, msg.data))] += 1;\n\n\t\tassembly {\n\t\t\treturn(add(0x20, result), mload(result))\n\t\t}\n\t}\n}\n", - "sourcePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "ast": { - "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "exportedSymbols": { - "MockContract": [ - 4000 - ], - "MockInterface": [ - 3021 - ] - }, - "id": 4001, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2877, - "literals": [ - "solidity", - "^", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:24:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 3021, - "linearizedBaseContracts": [ - 3021 - ], - "name": "MockInterface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when it is called\nwith any calldata that is not mocked more specifically below\n(e.g. using givenMethodReturn).\n@param response ABI encoded response that will be returned if method is invoked", - "id": 2882, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2879, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "358:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2878, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "358:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "357:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2881, - "nodeType": "ParameterList", - "parameters": [], - "src": "382:0:25" - }, - "scope": 3021, - "src": "334:49:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2887, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2884, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2887, - "src": "413:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2883, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "413:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "412:15:25" - }, - "payable": false, - "returnParameters": { - "id": 2886, - "nodeType": "ParameterList", - "parameters": [], - "src": "436:0:25" - }, - "scope": 3021, - "src": "385:52:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2892, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2889, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2892, - "src": "467:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "467:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "466:15:25" - }, - "payable": false, - "returnParameters": { - "id": 2891, - "nodeType": "ParameterList", - "parameters": [], - "src": "490:0:25" - }, - "scope": 3021, - "src": "439:52:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2897, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2895, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2894, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2897, - "src": "524:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2893, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "524:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "523:18:25" - }, - "payable": false, - "returnParameters": { - "id": 2896, - "nodeType": "ParameterList", - "parameters": [], - "src": "550:0:25" - }, - "scope": 3021, - "src": "493:58:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2900, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2898, - "nodeType": "ParameterList", - "parameters": [], - "src": "577:2:25" - }, - "payable": false, - "returnParameters": { - "id": 2899, - "nodeType": "ParameterList", - "parameters": [], - "src": "588:0:25" - }, - "scope": 3021, - "src": "554:35:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2905, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2903, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2902, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2905, - "src": "626:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2901, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "626:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "625:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2904, - "nodeType": "ParameterList", - "parameters": [], - "src": "650:0:25" - }, - "scope": 3021, - "src": "591:60:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2908, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2906, - "nodeType": "ParameterList", - "parameters": [], - "src": "681:2:25" - }, - "payable": false, - "returnParameters": { - "id": 2907, - "nodeType": "ParameterList", - "parameters": [], - "src": "692:0:25" - }, - "scope": 3021, - "src": "653:40:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called regardless of arguments. If the methodId and arguments\nare mocked more specifically (using `givenMethodAndArguments`) the latter\nwill take precedence.\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n@param response ABI encoded response that will be returned if method is invoked", - "id": 2915, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2913, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2910, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1222:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2909, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1222:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2912, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1236:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2911, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1236:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1221:30:25" - }, - "payable": false, - "returnParameters": { - "id": 2914, - "nodeType": "ParameterList", - "parameters": [], - "src": "1260:0:25" - }, - "scope": 3021, - "src": "1195:66:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2922, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2920, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2917, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1294:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2916, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1294:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2919, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1308:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2918, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1308:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1293:29:25" - }, - "payable": false, - "returnParameters": { - "id": 2921, - "nodeType": "ParameterList", - "parameters": [], - "src": "1331:0:25" - }, - "scope": 3021, - "src": "1263:69:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2929, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2924, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1365:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2923, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1365:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2926, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1379:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2925, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1364:29:25" - }, - "payable": false, - "returnParameters": { - "id": 2928, - "nodeType": "ParameterList", - "parameters": [], - "src": "1402:0:25" - }, - "scope": 3021, - "src": "1334:69:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2936, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2931, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1439:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2930, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1439:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2933, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1453:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2932, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1453:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1438:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2935, - "nodeType": "ParameterList", - "parameters": [], - "src": "1479:0:25" - }, - "scope": 3021, - "src": "1405:75:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2941, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2939, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2938, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2941, - "src": "1510:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2937, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1510:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1509:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2940, - "nodeType": "ParameterList", - "parameters": [], - "src": "1532:0:25" - }, - "scope": 3021, - "src": "1483:50:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2948, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2943, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1573:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2942, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1573:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2945, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1587:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2944, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1587:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:30:25" - }, - "payable": false, - "returnParameters": { - "id": 2947, - "nodeType": "ParameterList", - "parameters": [], - "src": "1611:0:25" - }, - "scope": 3021, - "src": "1535:77:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2953, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2950, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2953, - "src": "1646:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1646:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1645:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2952, - "nodeType": "ParameterList", - "parameters": [], - "src": "1668:0:25" - }, - "scope": 3021, - "src": "1614:55:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called with matching arguments. These exact calldataMocks will take\nprecedence over all other calldataMocks.\n@param calldata ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata", - "id": 2960, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2958, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2955, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2089:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2954, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2089:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2957, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2105:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2956, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2105:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2088:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2959, - "nodeType": "ParameterList", - "parameters": [], - "src": "2129:0:25" - }, - "scope": 3021, - "src": "2060:70:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2967, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2962, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2165:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2961, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2165:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2963, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2164:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2966, - "nodeType": "ParameterList", - "parameters": [], - "src": "2204:0:25" - }, - "scope": 3021, - "src": "2132:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2974, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2969, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2240:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2968, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2240:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2971, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2256:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2970, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2256:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2239:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2973, - "nodeType": "ParameterList", - "parameters": [], - "src": "2279:0:25" - }, - "scope": 3021, - "src": "2207:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2981, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2976, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2318:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2975, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2318:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2978, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2334:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2334:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:34:25" - }, - "payable": false, - "returnParameters": { - "id": 2980, - "nodeType": "ParameterList", - "parameters": [], - "src": "2360:0:25" - }, - "scope": 3021, - "src": "2282:79:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2986, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2983, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2986, - "src": "2393:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2982, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2393:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2392:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2985, - "nodeType": "ParameterList", - "parameters": [], - "src": "2417:0:25" - }, - "scope": 3021, - "src": "2364:54:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2993, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2988, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2460:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2987, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2460:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2990, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2476:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2989, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2476:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2459:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [], - "src": "2500:0:25" - }, - "scope": 3021, - "src": "2420:81:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2998, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2995, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2998, - "src": "2537:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2994, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2537:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2536:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2997, - "nodeType": "ParameterList", - "parameters": [], - "src": "2561:0:25" - }, - "scope": 3021, - "src": "2503:59:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times anything has been called on this mock since last reset", - "id": 3003, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2999, - "nodeType": "ParameterList", - "parameters": [], - "src": "2691:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3001, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3003, - "src": "2712:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3000, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2712:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2711:6:25" - }, - "scope": 3021, - "src": "2667:51:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times the given method has been called on this mock since last reset\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it", - "id": 3010, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3005, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3005:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3004, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3005:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3004:14:25" - }, - "payable": false, - "returnParameters": { - "id": 3009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3008, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3037:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3007, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3037:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3036:6:25" - }, - "scope": 3021, - "src": "2971:72:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times this mock has been called with the exact calldata since last reset.\n@param calldata ABI encoded calldata (methodId and arguments)", - "id": 3017, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3263:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3011, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3263:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3262:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3015, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3297:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3014, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3297:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3296:6:25" - }, - "scope": 3021, - "src": "3227:76:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Resets all mocked methods and invocation counts.", - "id": 3020, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3018, - "nodeType": "ParameterList", - "parameters": [], - "src": "3389:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3019, - "nodeType": "ParameterList", - "parameters": [], - "src": "3400:0:25" - }, - "scope": 3021, - "src": "3375:26:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4001, - "src": "26:3377:25" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3022, - "name": "MockInterface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3021, - "src": "3478:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MockInterface_$3021", - "typeString": "contract MockInterface" - } - }, - "id": 3023, - "nodeType": "InheritanceSpecifier", - "src": "3478:13:25" - } - ], - "contractDependencies": [ - 3021 - ], - "contractKind": "contract", - "documentation": "Implementation of the MockInterface.", - "fullyImplemented": true, - "id": 4000, - "linearizedBaseContracts": [ - 4000, - 3021 - ], - "name": "MockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MockContract.MockType", - "id": 3027, - "members": [ - { - "id": 3024, - "name": "Return", - "nodeType": "EnumValue", - "src": "3511:6:25" - }, - { - "id": 3025, - "name": "Revert", - "nodeType": "EnumValue", - "src": "3519:6:25" - }, - { - "id": 3026, - "name": "OutOfGas", - "nodeType": "EnumValue", - "src": "3527:8:25" - } - ], - "name": "MockType", - "nodeType": "EnumDefinition", - "src": "3495:42:25" - }, - { - "constant": true, - "id": 3030, - "name": "MOCKS_LIST_START", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3541:50:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3028, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3541:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3584:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3033, - "name": "MOCKS_LIST_END", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3594:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes" - }, - "typeName": { - "id": 3031, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3594:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786666", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3633:6:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", - "typeString": "literal_string \"0xff\"" - }, - "value": "0xff" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3038, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3642:71:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3642:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3036, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "3698:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 3035, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3688:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3688:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3041, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3716:51:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3039, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3716:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3760:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 3045, - "name": "calldataMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3832:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3044, - "keyType": { - "id": 3042, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3840:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "3832:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3043, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3851:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3049, - "name": "calldataMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3874:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "typeName": { - "id": 3048, - "keyType": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3882:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3874:26:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3047, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "3891:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3053, - "name": "calldataExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3921:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "typeName": { - "id": 3052, - "keyType": { - "id": 3050, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3929:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3921:23:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "valueType": { - "id": 3051, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3938:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3057, - "name": "calldataRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3968:46:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "typeName": { - "id": 3056, - "keyType": { - "id": 3054, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3976:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3968:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "valueType": { - "id": 3055, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3985:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "calldataInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4017:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3060, - "keyType": { - "id": 3058, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4025:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4017:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3059, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4036:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3065, - "name": "methodIdMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4065:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "typeName": { - "id": 3064, - "keyType": { - "id": 3062, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4073:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4065:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "valueType": { - "id": 3063, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4083:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3069, - "name": "methodIdMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4107:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "typeName": { - "id": 3068, - "keyType": { - "id": 3066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4115:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4107:27:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3067, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4125:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3073, - "name": "methodIdExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4155:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "typeName": { - "id": 3072, - "keyType": { - "id": 3070, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4163:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4155:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "valueType": { - "id": 3071, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4173:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3077, - "name": "methodIdRevertMessages", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4203:48:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "typeName": { - "id": 3076, - "keyType": { - "id": 3074, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4211:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4203:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "valueType": { - "id": 3075, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4221:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3081, - "name": "methodIdInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4254:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3080, - "keyType": { - "id": 3078, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4262:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4254:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3079, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4273:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3083, - "name": "fallbackMockType", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4302:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "typeName": { - "contractScope": null, - "id": 3082, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4302:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3085, - "name": "fallbackExpectation", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4330:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes" - }, - "typeName": { - "id": 3084, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4330:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3087, - "name": "fallbackRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4358:28:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3086, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4358:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3089, - "name": "invocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4389:16:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3088, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4389:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3091, - "name": "resetCount", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4408:15:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3090, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4408:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3106, - "nodeType": "Block", - "src": "4448:114:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3094, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4452:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3096, - "indexExpression": { - "argumentTypes": null, - "id": 3095, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4466:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4452:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3097, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "4486:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "4452:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3099, - "nodeType": "ExpressionStatement", - "src": "4452:48:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3100, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4504:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3102, - "indexExpression": { - "argumentTypes": null, - "id": 3101, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4518:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4504:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3103, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4540:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4504:54:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3105, - "nodeType": "ExpressionStatement", - "src": "4504:54:25" - } - ] - }, - "documentation": null, - "id": 3107, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3092, - "nodeType": "ParameterList", - "parameters": [], - "src": "4438:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3093, - "nodeType": "ParameterList", - "parameters": [], - "src": "4448:0:25" - }, - "scope": 4000, - "src": "4427:135:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3140, - "nodeType": "Block", - "src": "4619:196:25", - "statements": [ - { - "assignments": [ - 3113 - ], - "declarations": [ - { - "constant": false, - "id": 3113, - "name": "callHash", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4623:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4623:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3117, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3115, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4652:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3114, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4642:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4642:15:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4623:34:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3118, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4665:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3120, - "indexExpression": { - "argumentTypes": null, - "id": 3119, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4679:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4665:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3121, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4665:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4699:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4665:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3139, - "nodeType": "IfStatement", - "src": "4661:151:25", - "trueBody": { - "id": 3138, - "nodeType": "Block", - "src": "4702:110:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3124, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4707:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3126, - "indexExpression": { - "argumentTypes": null, - "id": 3125, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4721:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4707:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3127, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4733:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3129, - "indexExpression": { - "argumentTypes": null, - "id": 3128, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4747:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4733:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "4707:57:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3131, - "nodeType": "ExpressionStatement", - "src": "4707:57:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3132, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4769:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3134, - "indexExpression": { - "argumentTypes": null, - "id": 3133, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4783:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4769:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3135, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4803:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "4769:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3137, - "nodeType": "ExpressionStatement", - "src": "4769:38:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3141, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackCalldataMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3109, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4592:17:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3108, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4592:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4591:19:25" - }, - "payable": false, - "returnParameters": { - "id": 3111, - "nodeType": "ParameterList", - "parameters": [], - "src": "4619:0:25" - }, - "scope": 4000, - "src": "4565:250:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3167, - "nodeType": "Block", - "src": "4870:161:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3146, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4878:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3148, - "indexExpression": { - "argumentTypes": null, - "id": 3147, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4892:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4878:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "4878:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3166, - "nodeType": "IfStatement", - "src": "4874:154:25", - "trueBody": { - "id": 3165, - "nodeType": "Block", - "src": "4910:118:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3151, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4915:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3153, - "indexExpression": { - "argumentTypes": null, - "id": 3152, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4929:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4915:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3154, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4941:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3156, - "indexExpression": { - "argumentTypes": null, - "id": 3155, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4955:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4941:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4915:59:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3158, - "nodeType": "ExpressionStatement", - "src": "4915:59:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3159, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4979:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3161, - "indexExpression": { - "argumentTypes": null, - "id": 3160, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4993:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4979:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3162, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "5015:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4979:44:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3164, - "nodeType": "ExpressionStatement", - "src": "4979:44:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3168, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackMethodIdMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3143, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3168, - "src": "4845:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3142, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4845:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4844:17:25" - }, - "payable": false, - "returnParameters": { - "id": 3145, - "nodeType": "ParameterList", - "parameters": [], - "src": "4870:0:25" - }, - "scope": 4000, - "src": "4818:213:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3182, - "nodeType": "Block", - "src": "5084:76:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3173, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5088:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3174, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5107:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5107:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5088:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3177, - "nodeType": "ExpressionStatement", - "src": "5088:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3178, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "5126:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3179, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3170, - "src": "5148:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "5126:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3181, - "nodeType": "ExpressionStatement", - "src": "5126:30:25" - } - ] - }, - "documentation": null, - "id": 3183, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3170, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3183, - "src": "5059:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3169, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5059:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5058:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [], - "src": "5084:0:25" - }, - "scope": 4000, - "src": "5034:126:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3192, - "nodeType": "Block", - "src": "5212:33:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3189, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "5232:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3188, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5216:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5216:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3191, - "nodeType": "ExpressionStatement", - "src": "5216:25:25" - } - ] - }, - "documentation": null, - "id": 3193, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3186, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3185, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3193, - "src": "5187:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3184, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5187:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5186:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3187, - "nodeType": "ParameterList", - "parameters": [], - "src": "5212:0:25" - }, - "scope": 4000, - "src": "5163:82:25", - "stateMutability": "nonpayable", - "superFunction": 2882, - "visibility": "external" - }, - { - "body": { - "id": 3211, - "nodeType": "Block", - "src": "5300:74:25", - "statements": [ - { - "assignments": [ - 3199 - ], - "declarations": [ - { - "constant": false, - "id": 3199, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5304:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3198, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5304:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3204, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3200, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3195, - "src": "5316:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5331:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5316:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5304:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3207, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3199, - "src": "5364:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3206, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5352:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5352:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3205, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5336:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5336:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3210, - "nodeType": "ExpressionStatement", - "src": "5336:34:25" - } - ] - }, - "documentation": null, - "id": 3212, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3195, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5276:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3194, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5276:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5275:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3197, - "nodeType": "ParameterList", - "parameters": [], - "src": "5300:0:25" - }, - "scope": 4000, - "src": "5248:126:25", - "stateMutability": "nonpayable", - "superFunction": 2887, - "visibility": "external" - }, - { - "body": { - "id": 3223, - "nodeType": "Block", - "src": "5429:47:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3219, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3214, - "src": "5461:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3218, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5449:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5449:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5433:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5433:38:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3222, - "nodeType": "ExpressionStatement", - "src": "5433:38:25" - } - ] - }, - "documentation": null, - "id": 3224, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3214, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3224, - "src": "5405:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3213, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5405:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5404:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3216, - "nodeType": "ParameterList", - "parameters": [], - "src": "5429:0:25" - }, - "scope": 4000, - "src": "5377:99:25", - "stateMutability": "nonpayable", - "superFunction": 2892, - "visibility": "external" - }, - { - "body": { - "id": 3235, - "nodeType": "Block", - "src": "5537:49:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3231, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3226, - "src": "5572:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3230, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "5557:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5557:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3229, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5541:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5541:41:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3234, - "nodeType": "ExpressionStatement", - "src": "5541:41:25" - } - ] - }, - "documentation": null, - "id": 3236, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3227, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3226, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "5510:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5510:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5509:18:25" - }, - "payable": false, - "returnParameters": { - "id": 3228, - "nodeType": "ParameterList", - "parameters": [], - "src": "5537:0:25" - }, - "scope": 4000, - "src": "5479:107:25", - "stateMutability": "nonpayable", - "superFunction": 2897, - "visibility": "external" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "5624:72:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3239, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5628:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3240, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5647:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5647:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5628:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3243, - "nodeType": "ExpressionStatement", - "src": "5628:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3244, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5666:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5690:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "5666:26:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3247, - "nodeType": "ExpressionStatement", - "src": "5666:26:25" - } - ] - }, - "documentation": null, - "id": 3249, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3237, - "nodeType": "ParameterList", - "parameters": [], - "src": "5612:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3238, - "nodeType": "ParameterList", - "parameters": [], - "src": "5624:0:25" - }, - "scope": 4000, - "src": "5589:107:25", - "stateMutability": "nonpayable", - "superFunction": 2900, - "visibility": "external" - }, - { - "body": { - "id": 3263, - "nodeType": "Block", - "src": "5759:77:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3254, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5763:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3255, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5782:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5782:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5763:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3258, - "nodeType": "ExpressionStatement", - "src": "5763:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3259, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5801:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3260, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "5825:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "5801:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3262, - "nodeType": "ExpressionStatement", - "src": "5801:31:25" - } - ] - }, - "documentation": null, - "id": 3264, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3264, - "src": "5734:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3250, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5734:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5733:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3253, - "nodeType": "ParameterList", - "parameters": [], - "src": "5759:0:25" - }, - "scope": 4000, - "src": "5699:137:25", - "stateMutability": "nonpayable", - "superFunction": 2905, - "visibility": "external" - }, - { - "body": { - "id": 3272, - "nodeType": "Block", - "src": "5879:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3267, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5883:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3268, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5902:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5902:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5883:36:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3271, - "nodeType": "ExpressionStatement", - "src": "5883:36:25" - } - ] - }, - "documentation": null, - "id": 3273, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3265, - "nodeType": "ParameterList", - "parameters": [], - "src": "5867:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3266, - "nodeType": "ParameterList", - "parameters": [], - "src": "5879:0:25" - }, - "scope": 4000, - "src": "5839:84:25", - "stateMutability": "nonpayable", - "superFunction": 2908, - "visibility": "external" - }, - { - "body": { - "id": 3297, - "nodeType": "Block", - "src": "5993:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3280, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "5997:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3282, - "indexExpression": { - "argumentTypes": null, - "id": 3281, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6015:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5997:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3283, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6023:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6023:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5997:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3286, - "nodeType": "ExpressionStatement", - "src": "5997:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3287, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "6042:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3289, - "indexExpression": { - "argumentTypes": null, - "id": 3288, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6063:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6042:26:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3290, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6071:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6042:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3292, - "nodeType": "ExpressionStatement", - "src": "6042:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3294, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6101:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3293, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6083:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6083:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3296, - "nodeType": "ExpressionStatement", - "src": "6083:23:25" - } - ] - }, - "documentation": null, - "id": 3298, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3275, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5956:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3274, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5956:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3277, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5968:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3276, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5968:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5955:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3279, - "nodeType": "ParameterList", - "parameters": [], - "src": "5993:0:25" - }, - "scope": 4000, - "src": "5926:184:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3310, - "nodeType": "Block", - "src": "6180:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3306, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3300, - "src": "6205:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3307, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "6211:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3305, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3298, - "src": "6184:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6184:36:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3309, - "nodeType": "ExpressionStatement", - "src": "6184:36:25" - } - ] - }, - "documentation": null, - "id": 3311, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3303, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3300, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6142:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3299, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6142:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3302, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6154:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3301, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6154:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6141:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3304, - "nodeType": "ParameterList", - "parameters": [], - "src": "6180:0:25" - }, - "scope": 4000, - "src": "6113:111:25", - "stateMutability": "nonpayable", - "superFunction": 2960, - "visibility": "external" - }, - { - "body": { - "id": 3332, - "nodeType": "Block", - "src": "6296:83:25", - "statements": [ - { - "assignments": [ - 3319 - ], - "declarations": [ - { - "constant": false, - "id": 3319, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6300:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3318, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6300:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3324, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3320, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "6312:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6312:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6323:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6300:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3326, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3313, - "src": "6351:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3328, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "6369:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3327, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6357:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6357:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3325, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6332:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6332:43:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3331, - "nodeType": "ExpressionStatement", - "src": "6332:43:25" - } - ] - }, - "documentation": null, - "id": 3333, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3313, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6260:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3312, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6260:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3315, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6272:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3314, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6272:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6259:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3317, - "nodeType": "ParameterList", - "parameters": [], - "src": "6296:0:25" - }, - "scope": 4000, - "src": "6227:152:25", - "stateMutability": "nonpayable", - "superFunction": 2967, - "visibility": "external" - }, - { - "body": { - "id": 3347, - "nodeType": "Block", - "src": "6451:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3341, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3335, - "src": "6474:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3343, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "6492:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3342, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6480:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6480:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3340, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6455:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6455:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3346, - "nodeType": "ExpressionStatement", - "src": "6455:47:25" - } - ] - }, - "documentation": null, - "id": 3348, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3335, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6415:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3334, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6415:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3337, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6427:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6427:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6414:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3339, - "nodeType": "ParameterList", - "parameters": [], - "src": "6451:0:25" - }, - "scope": 4000, - "src": "6382:124:25", - "stateMutability": "nonpayable", - "superFunction": 2974, - "visibility": "external" - }, - { - "body": { - "id": 3362, - "nodeType": "Block", - "src": "6584:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3356, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "6607:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3358, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3352, - "src": "6628:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3357, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "6613:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3355, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6588:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6588:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3361, - "nodeType": "ExpressionStatement", - "src": "6588:50:25" - } - ] - }, - "documentation": null, - "id": 3363, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3350, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6545:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3349, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6545:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3352, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6557:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3351, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6557:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6544:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3354, - "nodeType": "ParameterList", - "parameters": [], - "src": "6584:0:25" - }, - "scope": 4000, - "src": "6509:133:25", - "stateMutability": "nonpayable", - "superFunction": 2981, - "visibility": "external" - }, - { - "body": { - "id": 3393, - "nodeType": "Block", - "src": "6709:164:25", - "statements": [ - { - "assignments": [ - 3371 - ], - "declarations": [ - { - "constant": false, - "id": 3371, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6713:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3370, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "6713:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3375, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3373, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3365, - "src": "6743:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3372, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "6729:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6729:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6713:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3376, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "6752:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3378, - "indexExpression": { - "argumentTypes": null, - "id": 3377, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6770:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6752:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3379, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6780:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6780:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6752:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3382, - "nodeType": "ExpressionStatement", - "src": "6752:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3383, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "6799:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3385, - "indexExpression": { - "argumentTypes": null, - "id": 3384, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6820:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6799:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3386, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3367, - "src": "6830:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6799:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3388, - "nodeType": "ExpressionStatement", - "src": "6799:39:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3390, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6860:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3389, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "6842:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6842:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3392, - "nodeType": "ExpressionStatement", - "src": "6842:25:25" - } - ] - }, - "documentation": null, - "id": 3394, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3365, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6673:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3364, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6673:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3367, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6685:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3366, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6685:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6672:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [], - "src": "6709:0:25" - }, - "scope": 4000, - "src": "6645:228:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3406, - "nodeType": "Block", - "src": "6940:42:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3402, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "6963:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3403, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "6969:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3401, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6944:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6944:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3405, - "nodeType": "ExpressionStatement", - "src": "6944:34:25" - } - ] - }, - "documentation": null, - "id": 3407, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3396, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6903:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3395, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6903:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3398, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6915:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3397, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6915:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6902:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3400, - "nodeType": "ParameterList", - "parameters": [], - "src": "6940:0:25" - }, - "scope": 4000, - "src": "6876:106:25", - "stateMutability": "nonpayable", - "superFunction": 2915, - "visibility": "external" - }, - { - "body": { - "id": 3428, - "nodeType": "Block", - "src": "7052:83:25", - "statements": [ - { - "assignments": [ - 3415 - ], - "declarations": [ - { - "constant": false, - "id": 3415, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7056:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3414, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7056:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3420, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3416, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3411, - "src": "7068:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7083:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7068:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7079:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7056:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3422, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3409, - "src": "7107:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3424, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3415, - "src": "7125:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3423, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7113:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7113:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3421, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7088:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7088:43:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3427, - "nodeType": "ExpressionStatement", - "src": "7088:43:25" - } - ] - }, - "documentation": null, - "id": 3429, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3412, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3409, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7016:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3408, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7016:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3411, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7028:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3410, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7028:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7015:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3413, - "nodeType": "ParameterList", - "parameters": [], - "src": "7052:0:25" - }, - "scope": 4000, - "src": "6985:150:25", - "stateMutability": "nonpayable", - "superFunction": 2922, - "visibility": "external" - }, - { - "body": { - "id": 3443, - "nodeType": "Block", - "src": "7205:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3437, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "7228:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3439, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3433, - "src": "7246:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3438, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7234:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7234:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3436, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7209:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7209:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3442, - "nodeType": "ExpressionStatement", - "src": "7209:47:25" - } - ] - }, - "documentation": null, - "id": 3444, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3431, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7169:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3430, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7169:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3433, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3432, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7168:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3435, - "nodeType": "ParameterList", - "parameters": [], - "src": "7205:0:25" - }, - "scope": 4000, - "src": "7138:122:25", - "stateMutability": "nonpayable", - "superFunction": 2929, - "visibility": "external" - }, - { - "body": { - "id": 3458, - "nodeType": "Block", - "src": "7336:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3452, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "7359:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3454, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3448, - "src": "7380:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3453, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "7365:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7365:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3451, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7340:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7340:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3457, - "nodeType": "ExpressionStatement", - "src": "7340:50:25" - } - ] - }, - "documentation": null, - "id": 3459, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7297:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7297:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3448, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7309:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3447, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7309:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7296:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3450, - "nodeType": "ParameterList", - "parameters": [], - "src": "7336:0:25" - }, - "scope": 4000, - "src": "7263:131:25", - "stateMutability": "nonpayable", - "superFunction": 2936, - "visibility": "external" - }, - { - "body": { - "id": 3481, - "nodeType": "Block", - "src": "7447:112:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3464, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7451:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3466, - "indexExpression": { - "argumentTypes": null, - "id": 3465, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7469:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7451:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3467, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7477:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7477:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7451:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3470, - "nodeType": "ExpressionStatement", - "src": "7451:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3471, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7496:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3473, - "indexExpression": { - "argumentTypes": null, - "id": 3472, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7518:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7496:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7526:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "7496:32:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3476, - "nodeType": "ExpressionStatement", - "src": "7496:32:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3478, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7550:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3477, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7532:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7532:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3480, - "nodeType": "ExpressionStatement", - "src": "7532:23:25" - } - ] - }, - "documentation": null, - "id": 3482, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3461, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3482, - "src": "7426:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3460, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7426:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7425:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3463, - "nodeType": "ParameterList", - "parameters": [], - "src": "7447:0:25" - }, - "scope": 4000, - "src": "7397:162:25", - "stateMutability": "nonpayable", - "superFunction": 2986, - "visibility": "external" - }, - { - "body": { - "id": 3504, - "nodeType": "Block", - "src": "7610:121:25", - "statements": [ - { - "assignments": [ - 3488 - ], - "declarations": [ - { - "constant": false, - "id": 3488, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7614:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3487, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7614:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3490, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3484, - "src": "7644:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3489, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "7630:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7630:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7614:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3493, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "7653:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3495, - "indexExpression": { - "argumentTypes": null, - "id": 3494, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7671:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7653:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3496, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7681:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7681:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7653:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3499, - "nodeType": "ExpressionStatement", - "src": "7653:43:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3501, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7718:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3500, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "7700:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7700:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "7700:25:25" - } - ] - }, - "documentation": null, - "id": 3505, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3484, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7589:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3483, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7589:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7588:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3486, - "nodeType": "ParameterList", - "parameters": [], - "src": "7610:0:25" - }, - "scope": 4000, - "src": "7562:169:25", - "stateMutability": "nonpayable", - "superFunction": 2941, - "visibility": "external" - }, - { - "body": { - "id": 3529, - "nodeType": "Block", - "src": "7811:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3512, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7815:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3514, - "indexExpression": { - "argumentTypes": null, - "id": 3513, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7833:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7815:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3515, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7841:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7841:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7815:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3518, - "nodeType": "ExpressionStatement", - "src": "7815:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3519, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7860:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3521, - "indexExpression": { - "argumentTypes": null, - "id": 3520, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7882:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7860:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3522, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3509, - "src": "7890:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "7860:37:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3524, - "nodeType": "ExpressionStatement", - "src": "7860:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3526, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7919:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3525, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7901:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7901:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "7901:23:25" - } - ] - }, - "documentation": null, - "id": 3530, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3510, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3507, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7774:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3506, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7774:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3509, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7786:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3508, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7786:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7773:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3511, - "nodeType": "ParameterList", - "parameters": [], - "src": "7811:0:25" - }, - "scope": 4000, - "src": "7734:194:25", - "stateMutability": "nonpayable", - "superFunction": 2993, - "visibility": "external" - }, - { - "body": { - "id": 3560, - "nodeType": "Block", - "src": "8006:165:25", - "statements": [ - { - "assignments": [ - 3538 - ], - "declarations": [ - { - "constant": false, - "id": 3538, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "8010:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3537, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8010:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3542, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3540, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3532, - "src": "8040:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3539, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8026:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8026:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8010:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3543, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8049:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3545, - "indexExpression": { - "argumentTypes": null, - "id": 3544, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8067:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8049:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3546, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8077:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8077:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8049:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3549, - "nodeType": "ExpressionStatement", - "src": "8049:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3550, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "8096:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3552, - "indexExpression": { - "argumentTypes": null, - "id": 3551, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8119:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8096:30:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3553, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "8129:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "8096:40:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3555, - "nodeType": "ExpressionStatement", - "src": "8096:40:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8158:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3556, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8140:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8140:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3559, - "nodeType": "ExpressionStatement", - "src": "8140:25:25" - } - ] - }, - "documentation": null, - "id": 3561, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3535, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3532, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7969:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3531, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7969:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3534, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7981:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3533, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7981:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7968:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3536, - "nodeType": "ParameterList", - "parameters": [], - "src": "8006:0:25" - }, - "scope": 4000, - "src": "7931:240:25", - "stateMutability": "nonpayable", - "superFunction": 2948, - "visibility": "external" - }, - { - "body": { - "id": 3577, - "nodeType": "Block", - "src": "8229:78:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3566, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "8233:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3568, - "indexExpression": { - "argumentTypes": null, - "id": 3567, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8251:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8233:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3569, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8259:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3570, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8259:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8233:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3572, - "nodeType": "ExpressionStatement", - "src": "8233:43:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3574, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8298:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3573, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "8280:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8280:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3576, - "nodeType": "ExpressionStatement", - "src": "8280:23:25" - } - ] - }, - "documentation": null, - "id": 3578, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3564, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3563, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "8208:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3562, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8208:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8207:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3565, - "nodeType": "ParameterList", - "parameters": [], - "src": "8229:0:25" - }, - "scope": 4000, - "src": "8174:133:25", - "stateMutability": "nonpayable", - "superFunction": 2998, - "visibility": "external" - }, - { - "body": { - "id": 3600, - "nodeType": "Block", - "src": "8363:122:25", - "statements": [ - { - "assignments": [ - 3584 - ], - "declarations": [ - { - "constant": false, - "id": 3584, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8367:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3583, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8367:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3588, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3586, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3580, - "src": "8397:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3585, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8383:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8383:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8367:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3589, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8406:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3591, - "indexExpression": { - "argumentTypes": null, - "id": 3590, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8424:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8406:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3592, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8434:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8434:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8406:45:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3595, - "nodeType": "ExpressionStatement", - "src": "8406:45:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3597, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8473:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3596, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8455:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8455:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3599, - "nodeType": "ExpressionStatement", - "src": "8455:25:25" - } - ] - }, - "documentation": null, - "id": 3601, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3581, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3580, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8342:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3579, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8342:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8341:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3582, - "nodeType": "ParameterList", - "parameters": [], - "src": "8363:0:25" - }, - "scope": 4000, - "src": "8310:175:25", - "stateMutability": "nonpayable", - "superFunction": 2953, - "visibility": "external" - }, - { - "body": { - "id": 3608, - "nodeType": "Block", - "src": "8539:26:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3606, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "8550:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3605, - "id": 3607, - "nodeType": "Return", - "src": "8543:18:25" - } - ] - }, - "documentation": null, - "id": 3609, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "8512:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3604, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3609, - "src": "8533:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3603, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8533:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8532:6:25" - }, - "scope": 4000, - "src": "8488:77:25", - "stateMutability": "nonpayable", - "superFunction": 3003, - "visibility": "external" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "8638:122:25", - "statements": [ - { - "assignments": [ - 3617 - ], - "declarations": [ - { - "constant": false, - "id": 3617, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8642:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3616, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8642:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3621, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3619, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "8672:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3618, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8658:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8658:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8642:35:25" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3622, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "8688:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3630, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3626, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8735:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3627, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3617, - "src": "8747:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 3624, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8718:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3625, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8718:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8718:36:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3623, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8708:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8708:47:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8688:68:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3615, - "id": 3631, - "nodeType": "Return", - "src": "8681:75:25" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3612, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3611, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8602:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3610, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8602:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8601:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3615, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3614, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8632:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3613, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8632:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8631:6:25" - }, - "scope": 4000, - "src": "8568:192:25", - "stateMutability": "nonpayable", - "superFunction": 3010, - "visibility": "external" - }, - { - "body": { - "id": 3650, - "nodeType": "Block", - "src": "8835:81:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3640, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "8846:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3648, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8893:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3635, - "src": "8905:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 3642, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8876:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8876:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8876:34:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3641, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8866:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8866:45:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8846:66:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3639, - "id": 3649, - "nodeType": "Return", - "src": "8839:73:25" - } - ] - }, - "documentation": null, - "id": 3651, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3636, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3635, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8799:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3634, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8799:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8798:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3638, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8829:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3637, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8829:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8828:6:25" - }, - "scope": 4000, - "src": "8763:153:25", - "stateMutability": "nonpayable", - "superFunction": 3017, - "visibility": "external" - }, - { - "body": { - "id": 3783, - "nodeType": "Block", - "src": "8945:1265:25", - "statements": [ - { - "assignments": [ - 3655 - ], - "declarations": [ - { - "constant": false, - "id": 3655, - "name": "nextMock", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "8984:21:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3654, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8984:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3659, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3656, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9008:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3658, - "indexExpression": { - "argumentTypes": null, - "id": 3657, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9022:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9008:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8984:55:25" - }, - { - "assignments": [ - 3661 - ], - "declarations": [ - { - "constant": false, - "id": 3661, - "name": "mockHash", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9043:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3660, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9043:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3665, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3663, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9072:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3662, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9062:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9062:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9043:38:25" - }, - { - "body": { - "id": 3706, - "nodeType": "Block", - "src": "9153:355:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3669, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "9184:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3671, - "indexExpression": { - "argumentTypes": null, - "id": 3670, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9202:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9184:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3672, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9214:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9214:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "9184:45:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3675, - "nodeType": "ExpressionStatement", - "src": "9184:45:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3676, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "9234:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3678, - "indexExpression": { - "argumentTypes": null, - "id": 3677, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9255:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9234:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9267:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9234:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3681, - "nodeType": "ExpressionStatement", - "src": "9234:38:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3682, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "9277:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3684, - "indexExpression": { - "argumentTypes": null, - "id": 3683, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9299:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9277:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9311:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9277:36:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3687, - "nodeType": "ExpressionStatement", - "src": "9277:36:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9348:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3689, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9359:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3691, - "indexExpression": { - "argumentTypes": null, - "id": 3690, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9373:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9359:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "9348:34:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3693, - "nodeType": "ExpressionStatement", - "src": "9348:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3694, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9417:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3696, - "indexExpression": { - "argumentTypes": null, - "id": 3695, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9431:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9417:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9443:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9417:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "9417:28:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9473:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3702, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9494:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3701, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9484:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9484:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9473:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3705, - "nodeType": "ExpressionStatement", - "src": "9473:30:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 3668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3666, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9120:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 3667, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "9132:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9120:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3707, - "nodeType": "WhileStatement", - "src": "9114:394:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3708, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9527:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3710, - "indexExpression": { - "argumentTypes": null, - "id": 3709, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9541:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9527:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3711, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "9561:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "9527:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3713, - "nodeType": "ExpressionStatement", - "src": "9527:48:25" - }, - { - "assignments": [ - 3715 - ], - "declarations": [ - { - "constant": false, - "id": 3715, - "name": "nextAnyMock", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9613:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3714, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "9613:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3719, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3716, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9634:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3718, - "indexExpression": { - "argumentTypes": null, - "id": 3717, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9648:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9634:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9613:54:25" - }, - { - "body": { - "id": 3758, - "nodeType": "Block", - "src": "9712:316:25", - "statements": [ - { - "assignments": [ - 3724 - ], - "declarations": [ - { - "constant": false, - "id": 3724, - "name": "currentAnyMock", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9717:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3723, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "9717:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3726, - "initialValue": { - "argumentTypes": null, - "id": 3725, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9741:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9717:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3727, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "9757:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3729, - "indexExpression": { - "argumentTypes": null, - "id": 3728, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9775:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9757:33:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9793:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9793:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "9757:51:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3733, - "nodeType": "ExpressionStatement", - "src": "9757:51:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3734, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "9813:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "id": 3735, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9834:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9813:36:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9852:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9813:44:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3739, - "nodeType": "ExpressionStatement", - "src": "9813:44:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3740, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "9862:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3742, - "indexExpression": { - "argumentTypes": null, - "id": 3741, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9885:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9862:38:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3743, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9903:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9862:43:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3745, - "nodeType": "ExpressionStatement", - "src": "9862:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3746, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9910:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9924:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9938:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9924:29:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "9910:43:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3751, - "nodeType": "ExpressionStatement", - "src": "9910:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3752, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9988:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3754, - "indexExpression": { - "argumentTypes": null, - "id": 3753, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "10002:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9988:29:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10020:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "9988:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3757, - "nodeType": "ExpressionStatement", - "src": "9988:35:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3720, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9677:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 3721, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9692:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "9677:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3759, - "nodeType": "WhileStatement", - "src": "9671:357:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3760, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "10047:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3762, - "indexExpression": { - "argumentTypes": null, - "id": 3761, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10061:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10047:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3763, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10083:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10047:54:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3765, - "nodeType": "ExpressionStatement", - "src": "10047:54:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3766, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "10106:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10128:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10106:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3769, - "nodeType": "ExpressionStatement", - "src": "10106:24:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3770, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "10134:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3771, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "10153:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10153:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "10134:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3774, - "nodeType": "ExpressionStatement", - "src": "10134:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3775, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "10172:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 3776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10186:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10172:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3778, - "nodeType": "ExpressionStatement", - "src": "10172:15:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3779, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "10191:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10205:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10191:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3782, - "nodeType": "ExpressionStatement", - "src": "10191:15:25" - } - ] - }, - "documentation": null, - "id": 3784, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3652, - "nodeType": "ParameterList", - "parameters": [], - "src": "8933:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3653, - "nodeType": "ParameterList", - "parameters": [], - "src": "8945:0:25" - }, - "scope": 4000, - "src": "8919:1291:25", - "stateMutability": "nonpayable", - "superFunction": 3020, - "visibility": "external" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "10242:157:25", - "statements": [ - { - "body": { - "id": 3792, - "nodeType": "Block", - "src": "10258:138:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3789, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "10263:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3788, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10263:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3790, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10263:6:25" - }, - { - "externalReferences": [ - { - "s": { - "declaration": 3789, - "isOffset": false, - "isSlot": false, - "src": "10334:1:25", - "valueSize": 1 - } - } - ], - "id": 3791, - "nodeType": "InlineAssembly", - "operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}", - "src": "10274:122:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10252:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "id": 3793, - "nodeType": "WhileStatement", - "src": "10246:150:25" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "useAllGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3785, - "nodeType": "ParameterList", - "parameters": [], - "src": "10231:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [], - "src": "10242:0:25" - }, - "scope": 4000, - "src": "10213:186:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3834, - "nodeType": "Block", - "src": "10464:122:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3803, - "name": "out", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10470:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3802, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10470:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3804, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10470:10:25" - }, - { - "body": { - "id": 3830, - "nodeType": "Block", - "src": "10515:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3815, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10523:3:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "id": 3821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3817, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "10537:1:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3819, - "indexExpression": { - "argumentTypes": null, - "id": 3818, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10539:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10537:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30784646", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10544:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "value": "0xFF" - }, - "src": "10537:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - ], - "id": 3816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10530:6:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 3822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10530:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3823, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10554:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "38", - "id": 3824, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10558:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "10554:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3826, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10553:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10530:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10523:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3829, - "nodeType": "ExpressionStatement", - "src": "10523:37:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3809, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10503:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 3810, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10507:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "10503:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3831, - "initializationExpression": { - "assignments": [ - 3806 - ], - "declarations": [ - { - "constant": false, - "id": 3806, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10491:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3805, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10491:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3808, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3807, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10500:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10491:10:25" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10510:3:25", - "subExpression": { - "argumentTypes": null, - "id": 3812, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10510:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3814, - "nodeType": "ExpressionStatement", - "src": "10510:3:25" - }, - "nodeType": "ForStatement", - "src": "10486:81:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3832, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10579:3:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "functionReturnParameters": 3801, - "id": 3833, - "nodeType": "Return", - "src": "10572:10:25" - } - ] - }, - "documentation": null, - "id": 3835, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "bytesToBytes4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3798, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10425:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3796, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10425:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10424:9:25" - }, - "payable": false, - "returnParameters": { - "id": 3801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3800, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10456:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3799, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10456:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10455:8:25" - }, - "scope": 4000, - "src": "10402:184:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3843, - "nodeType": "Block", - "src": "10654:189:25", - "statements": [ - { - "externalReferences": [ - { - "b": { - "declaration": 3840, - "isOffset": false, - "isSlot": false, - "src": "10827:1:25", - "valueSize": 1 - } - }, - { - "a": { - "declaration": 3837, - "isOffset": false, - "isSlot": false, - "src": "10780:1:25", - "valueSize": 1 - } - } - ], - "id": 3842, - "nodeType": "InlineAssembly", - "operations": "{\n let m := mload(0x40)\n mstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n mstore(0x40, add(m, 52))\n b := m\n}", - "src": "10661:182:25" - } - ] - }, - "documentation": null, - "id": 3844, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "addressToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3837, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10613:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3836, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10613:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10612:11:25" - }, - "payable": false, - "returnParameters": { - "id": 3841, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3840, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10646:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3839, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10646:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10645:9:25" - }, - "scope": 4000, - "src": "10589:254:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3859, - "nodeType": "Block", - "src": "10909:68:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3851, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3849, - "src": "10916:1:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 3854, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10930:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "id": 3853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "10920:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 3852, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10924:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10920:13:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "10916:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3857, - "nodeType": "ExpressionStatement", - "src": "10916:17:25" - }, - { - "externalReferences": [ - { - "x": { - "declaration": 3846, - "isOffset": false, - "isSlot": false, - "src": "10970:1:25", - "valueSize": 1 - } - }, - { - "b": { - "declaration": 3849, - "isOffset": false, - "isSlot": false, - "src": "10962:1:25", - "valueSize": 1 - } - } - ], - "id": 3858, - "nodeType": "InlineAssembly", - "operations": "{\n mstore(add(b, 32), x)\n}", - "src": "10940:37:25" - } - ] - }, - "documentation": null, - "id": 3860, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "uintToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3847, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3846, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10867:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3845, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10867:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10866:11:25" - }, - "payable": false, - "returnParameters": { - "id": 3850, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3849, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10900:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3848, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10900:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10899:9:25" - }, - "scope": 4000, - "src": "10846:131:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3998, - "nodeType": "Block", - "src": "11008:1178:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3864, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11012:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3863, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11012:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3865, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "11012:15:25" - }, - { - "externalReferences": [ - { - "methodId": { - "declaration": 3864, - "isOffset": false, - "isSlot": false, - "src": "11045:8:25", - "valueSize": 1 - } - } - ], - "id": 3866, - "nodeType": "InlineAssembly", - "operations": "{\n methodId := calldataload(0)\n}", - "src": "11031:94:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3867, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11127:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3870, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3868, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11145:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11145:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11127:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3871, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11158:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11158:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11127:46:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3882, - "nodeType": "IfStatement", - "src": "11123:101:25", - "trueBody": { - "id": 3881, - "nodeType": "Block", - "src": "11175:49:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3875, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "11187:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3878, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3876, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11209:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11209:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11187:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 3874, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "11180:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11180:39:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3880, - "nodeType": "ExpressionStatement", - "src": "11180:39:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3883, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11231:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3886, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3884, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11249:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11249:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11231:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3887, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11262:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11262:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11231:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3894, - "nodeType": "IfStatement", - "src": "11227:75:25", - "trueBody": { - "id": 3893, - "nodeType": "Block", - "src": "11281:21:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3890, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11286:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11286:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3892, - "nodeType": "ExpressionStatement", - "src": "11286:11:25" - } - ] - } - }, - { - "assignments": [ - 3896 - ], - "declarations": [ - { - "constant": false, - "id": 3896, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11305:19:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3895, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11305:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3901, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3897, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "11327:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3900, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3898, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11348:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11348:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11327:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11305:52:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3902, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11402:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11402:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11419:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11402:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3938, - "nodeType": "IfStatement", - "src": "11398:262:25", - "trueBody": { - "id": 3937, - "nodeType": "Block", - "src": "11422:238:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3906, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11431:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3908, - "indexExpression": { - "argumentTypes": null, - "id": 3907, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11449:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11431:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3909, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11462:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3910, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11462:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11431:46:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3919, - "nodeType": "IfStatement", - "src": "11427:104:25", - "trueBody": { - "id": 3918, - "nodeType": "Block", - "src": "11479:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3913, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "11492:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3915, - "indexExpression": { - "argumentTypes": null, - "id": 3914, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11515:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11492:32:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 3912, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "11485:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11485:40:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "11485:40:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3920, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11539:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3922, - "indexExpression": { - "argumentTypes": null, - "id": 3921, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11557:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11539:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3923, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11570:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11570:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11539:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3930, - "nodeType": "IfStatement", - "src": "11535:77:25", - "trueBody": { - "id": 3929, - "nodeType": "Block", - "src": "11589:23:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3926, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11595:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11595:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3928, - "nodeType": "ExpressionStatement", - "src": "11595:11:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3931, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11616:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3932, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "11625:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3934, - "indexExpression": { - "argumentTypes": null, - "id": 3933, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11646:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11625:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "11616:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3936, - "nodeType": "ExpressionStatement", - "src": "11616:39:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3939, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11705:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11705:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3941, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11722:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11705:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3967, - "nodeType": "IfStatement", - "src": "11701:218:25", - "trueBody": { - "id": 3966, - "nodeType": "Block", - "src": "11725:194:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3943, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11734:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3944, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11754:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11754:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11734:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3952, - "nodeType": "IfStatement", - "src": "11730:82:25", - "trueBody": { - "id": 3951, - "nodeType": "Block", - "src": "11771:41:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3948, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "11784:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 3947, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "11777:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11777:29:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3950, - "nodeType": "ExpressionStatement", - "src": "11777:29:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3953, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11820:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3954, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11840:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3955, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11840:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11820:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3961, - "nodeType": "IfStatement", - "src": "11816:66:25", - "trueBody": { - "id": 3960, - "nodeType": "Block", - "src": "11859:23:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3957, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11865:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11865:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3959, - "nodeType": "ExpressionStatement", - "src": "11865:11:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3962, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11886:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3963, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "11895:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "11886:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3965, - "nodeType": "ExpressionStatement", - "src": "11886:28:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3968, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "11946:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3969, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11961:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11946:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3971, - "nodeType": "ExpressionStatement", - "src": "11946:16:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3972, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "11966:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3980, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3976, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12013:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3977, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "12025:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 3974, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "11996:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11996:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11996:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3973, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "11986:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11986:49:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11966:70:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3981, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12040:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11966:75:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3983, - "nodeType": "ExpressionStatement", - "src": "11966:75:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3984, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "12045:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3993, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3988, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12092:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3989, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "12104:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12104:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 3986, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12075:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3987, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12075:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12075:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3985, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12065:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12065:49:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12045:70:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12119:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12045:75:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3996, - "nodeType": "ExpressionStatement", - "src": "12045:75:25" - }, - { - "externalReferences": [ - { - "result": { - "declaration": 3896, - "isOffset": false, - "isSlot": false, - "src": "12156:6:25", - "valueSize": 1 - } - }, - { - "result": { - "declaration": 3896, - "isOffset": false, - "isSlot": false, - "src": "12171:6:25", - "valueSize": 1 - } - } - ], - "id": 3997, - "nodeType": "InlineAssembly", - "operations": "{\n return(add(0x20, result), mload(result))\n}", - "src": "12125:61:25" - } - ] - }, - "documentation": null, - "id": 3999, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3861, - "nodeType": "ParameterList", - "parameters": [], - "src": "10988:2:25" - }, - "payable": true, - "returnParameters": { - "id": 3862, - "nodeType": "ParameterList", - "parameters": [], - "src": "11008:0:25" - }, - "scope": 4000, - "src": "10980:1206:25", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4001, - "src": "3453:8735:25" - } - ], - "src": "0:12189:25" - }, - "legacyAST": { - "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "exportedSymbols": { - "MockContract": [ - 4000 - ], - "MockInterface": [ - 3021 - ] - }, - "id": 4001, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2877, - "literals": [ - "solidity", - "^", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:24:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 3021, - "linearizedBaseContracts": [ - 3021 - ], - "name": "MockInterface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when it is called\nwith any calldata that is not mocked more specifically below\n(e.g. using givenMethodReturn).\n@param response ABI encoded response that will be returned if method is invoked", - "id": 2882, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2879, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "358:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2878, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "358:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "357:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2881, - "nodeType": "ParameterList", - "parameters": [], - "src": "382:0:25" - }, - "scope": 3021, - "src": "334:49:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2887, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2884, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2887, - "src": "413:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2883, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "413:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "412:15:25" - }, - "payable": false, - "returnParameters": { - "id": 2886, - "nodeType": "ParameterList", - "parameters": [], - "src": "436:0:25" - }, - "scope": 3021, - "src": "385:52:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2892, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2889, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2892, - "src": "467:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "467:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "466:15:25" - }, - "payable": false, - "returnParameters": { - "id": 2891, - "nodeType": "ParameterList", - "parameters": [], - "src": "490:0:25" - }, - "scope": 3021, - "src": "439:52:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2897, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2895, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2894, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2897, - "src": "524:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2893, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "524:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "523:18:25" - }, - "payable": false, - "returnParameters": { - "id": 2896, - "nodeType": "ParameterList", - "parameters": [], - "src": "550:0:25" - }, - "scope": 3021, - "src": "493:58:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2900, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2898, - "nodeType": "ParameterList", - "parameters": [], - "src": "577:2:25" - }, - "payable": false, - "returnParameters": { - "id": 2899, - "nodeType": "ParameterList", - "parameters": [], - "src": "588:0:25" - }, - "scope": 3021, - "src": "554:35:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2905, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2903, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2902, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2905, - "src": "626:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2901, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "626:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "625:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2904, - "nodeType": "ParameterList", - "parameters": [], - "src": "650:0:25" - }, - "scope": 3021, - "src": "591:60:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2908, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2906, - "nodeType": "ParameterList", - "parameters": [], - "src": "681:2:25" - }, - "payable": false, - "returnParameters": { - "id": 2907, - "nodeType": "ParameterList", - "parameters": [], - "src": "692:0:25" - }, - "scope": 3021, - "src": "653:40:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called regardless of arguments. If the methodId and arguments\nare mocked more specifically (using `givenMethodAndArguments`) the latter\nwill take precedence.\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n@param response ABI encoded response that will be returned if method is invoked", - "id": 2915, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2913, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2910, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1222:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2909, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1222:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2912, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2915, - "src": "1236:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2911, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1236:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1221:30:25" - }, - "payable": false, - "returnParameters": { - "id": 2914, - "nodeType": "ParameterList", - "parameters": [], - "src": "1260:0:25" - }, - "scope": 3021, - "src": "1195:66:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2922, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2920, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2917, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1294:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2916, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1294:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2919, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1308:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2918, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1308:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1293:29:25" - }, - "payable": false, - "returnParameters": { - "id": 2921, - "nodeType": "ParameterList", - "parameters": [], - "src": "1331:0:25" - }, - "scope": 3021, - "src": "1263:69:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2929, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2924, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1365:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2923, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1365:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2926, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2929, - "src": "1379:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2925, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1364:29:25" - }, - "payable": false, - "returnParameters": { - "id": 2928, - "nodeType": "ParameterList", - "parameters": [], - "src": "1402:0:25" - }, - "scope": 3021, - "src": "1334:69:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2936, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2931, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1439:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2930, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1439:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2933, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2936, - "src": "1453:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2932, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1453:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1438:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2935, - "nodeType": "ParameterList", - "parameters": [], - "src": "1479:0:25" - }, - "scope": 3021, - "src": "1405:75:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2941, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2939, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2938, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2941, - "src": "1510:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2937, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1510:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1509:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2940, - "nodeType": "ParameterList", - "parameters": [], - "src": "1532:0:25" - }, - "scope": 3021, - "src": "1483:50:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2948, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2943, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1573:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2942, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1573:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2945, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2948, - "src": "1587:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2944, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1587:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:30:25" - }, - "payable": false, - "returnParameters": { - "id": 2947, - "nodeType": "ParameterList", - "parameters": [], - "src": "1611:0:25" - }, - "scope": 3021, - "src": "1535:77:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2953, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2950, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 2953, - "src": "1646:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1646:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1645:14:25" - }, - "payable": false, - "returnParameters": { - "id": 2952, - "nodeType": "ParameterList", - "parameters": [], - "src": "1668:0:25" - }, - "scope": 3021, - "src": "1614:55:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called with matching arguments. These exact calldataMocks will take\nprecedence over all other calldataMocks.\n@param calldata ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata", - "id": 2960, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2958, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2955, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2089:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2954, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2089:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2957, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "2105:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2956, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2105:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2088:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2959, - "nodeType": "ParameterList", - "parameters": [], - "src": "2129:0:25" - }, - "scope": 3021, - "src": "2060:70:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2967, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2962, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2165:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2961, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2165:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2967, - "src": "2181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2963, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2164:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2966, - "nodeType": "ParameterList", - "parameters": [], - "src": "2204:0:25" - }, - "scope": 3021, - "src": "2132:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2974, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2969, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2240:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2968, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2240:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2971, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2974, - "src": "2256:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2970, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2256:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2239:31:25" - }, - "payable": false, - "returnParameters": { - "id": 2973, - "nodeType": "ParameterList", - "parameters": [], - "src": "2279:0:25" - }, - "scope": 3021, - "src": "2207:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2981, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2976, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2318:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2975, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2318:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2978, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "2334:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2334:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:34:25" - }, - "payable": false, - "returnParameters": { - "id": 2980, - "nodeType": "ParameterList", - "parameters": [], - "src": "2360:0:25" - }, - "scope": 3021, - "src": "2282:79:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2986, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2983, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2986, - "src": "2393:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2982, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2393:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2392:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2985, - "nodeType": "ParameterList", - "parameters": [], - "src": "2417:0:25" - }, - "scope": 3021, - "src": "2364:54:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2993, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2988, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2460:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2987, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2460:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2990, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "2476:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2989, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2476:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2459:32:25" - }, - "payable": false, - "returnParameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [], - "src": "2500:0:25" - }, - "scope": 3021, - "src": "2420:81:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 2998, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2995, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 2998, - "src": "2537:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2994, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2537:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2536:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2997, - "nodeType": "ParameterList", - "parameters": [], - "src": "2561:0:25" - }, - "scope": 3021, - "src": "2503:59:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times anything has been called on this mock since last reset", - "id": 3003, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2999, - "nodeType": "ParameterList", - "parameters": [], - "src": "2691:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3001, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3003, - "src": "2712:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3000, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2712:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2711:6:25" - }, - "scope": 3021, - "src": "2667:51:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times the given method has been called on this mock since last reset\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it", - "id": 3010, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3005, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3005:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3004, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3005:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3004:14:25" - }, - "payable": false, - "returnParameters": { - "id": 3009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3008, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "3037:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3007, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3037:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3036:6:25" - }, - "scope": 3021, - "src": "2971:72:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times this mock has been called with the exact calldata since last reset.\n@param calldata ABI encoded calldata (methodId and arguments)", - "id": 3017, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "calldata", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3263:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3011, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3263:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3262:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3015, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "3297:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3014, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3297:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3296:6:25" - }, - "scope": 3021, - "src": "3227:76:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Resets all mocked methods and invocation counts.", - "id": 3020, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3018, - "nodeType": "ParameterList", - "parameters": [], - "src": "3389:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3019, - "nodeType": "ParameterList", - "parameters": [], - "src": "3400:0:25" - }, - "scope": 3021, - "src": "3375:26:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4001, - "src": "26:3377:25" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3022, - "name": "MockInterface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3021, - "src": "3478:13:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MockInterface_$3021", - "typeString": "contract MockInterface" - } - }, - "id": 3023, - "nodeType": "InheritanceSpecifier", - "src": "3478:13:25" - } - ], - "contractDependencies": [ - 3021 - ], - "contractKind": "contract", - "documentation": "Implementation of the MockInterface.", - "fullyImplemented": true, - "id": 4000, - "linearizedBaseContracts": [ - 4000, - 3021 - ], - "name": "MockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MockContract.MockType", - "id": 3027, - "members": [ - { - "id": 3024, - "name": "Return", - "nodeType": "EnumValue", - "src": "3511:6:25" - }, - { - "id": 3025, - "name": "Revert", - "nodeType": "EnumValue", - "src": "3519:6:25" - }, - { - "id": 3026, - "name": "OutOfGas", - "nodeType": "EnumValue", - "src": "3527:8:25" - } - ], - "name": "MockType", - "nodeType": "EnumDefinition", - "src": "3495:42:25" - }, - { - "constant": true, - "id": 3030, - "name": "MOCKS_LIST_START", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3541:50:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3028, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3541:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3584:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3033, - "name": "MOCKS_LIST_END", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3594:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes" - }, - "typeName": { - "id": 3031, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3594:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786666", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3633:6:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", - "typeString": "literal_string \"0xff\"" - }, - "value": "0xff" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3038, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3642:71:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3642:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3036, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "3698:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 3035, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3688:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3688:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3041, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3716:51:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3039, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3716:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3760:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 3045, - "name": "calldataMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3832:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3044, - "keyType": { - "id": 3042, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3840:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "3832:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3043, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3851:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3049, - "name": "calldataMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3874:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "typeName": { - "id": 3048, - "keyType": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3882:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3874:26:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3047, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "3891:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3053, - "name": "calldataExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3921:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "typeName": { - "id": 3052, - "keyType": { - "id": 3050, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3929:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3921:23:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "valueType": { - "id": 3051, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3938:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3057, - "name": "calldataRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "3968:46:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "typeName": { - "id": 3056, - "keyType": { - "id": 3054, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3976:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "3968:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "valueType": { - "id": 3055, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3985:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "calldataInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4017:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3060, - "keyType": { - "id": 3058, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4025:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4017:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3059, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4036:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3065, - "name": "methodIdMocks", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4065:39:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "typeName": { - "id": 3064, - "keyType": { - "id": 3062, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4073:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4065:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "valueType": { - "id": 3063, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4083:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3069, - "name": "methodIdMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4107:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "typeName": { - "id": 3068, - "keyType": { - "id": 3066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4115:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4107:27:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3067, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4125:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3073, - "name": "methodIdExpectations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4155:45:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "typeName": { - "id": 3072, - "keyType": { - "id": 3070, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4163:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4155:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "valueType": { - "id": 3071, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4173:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3077, - "name": "methodIdRevertMessages", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4203:48:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "typeName": { - "id": 3076, - "keyType": { - "id": 3074, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4211:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4203:25:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "valueType": { - "id": 3075, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4221:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3081, - "name": "methodIdInvocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4254:44:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3080, - "keyType": { - "id": 3078, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4262:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4254:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3079, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4273:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3083, - "name": "fallbackMockType", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4302:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "typeName": { - "contractScope": null, - "id": 3082, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3027, - "src": "4302:8:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3085, - "name": "fallbackExpectation", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4330:25:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes" - }, - "typeName": { - "id": 3084, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4330:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3087, - "name": "fallbackRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4358:28:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3086, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4358:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3089, - "name": "invocations", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4389:16:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3088, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4389:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3091, - "name": "resetCount", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "4408:15:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3090, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4408:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3106, - "nodeType": "Block", - "src": "4448:114:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3094, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4452:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3096, - "indexExpression": { - "argumentTypes": null, - "id": 3095, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4466:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4452:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3097, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "4486:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "4452:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3099, - "nodeType": "ExpressionStatement", - "src": "4452:48:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3100, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4504:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3102, - "indexExpression": { - "argumentTypes": null, - "id": 3101, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4518:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4504:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3103, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4540:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4504:54:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3105, - "nodeType": "ExpressionStatement", - "src": "4504:54:25" - } - ] - }, - "documentation": null, - "id": 3107, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3092, - "nodeType": "ParameterList", - "parameters": [], - "src": "4438:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3093, - "nodeType": "ParameterList", - "parameters": [], - "src": "4448:0:25" - }, - "scope": 4000, - "src": "4427:135:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3140, - "nodeType": "Block", - "src": "4619:196:25", - "statements": [ - { - "assignments": [ - 3113 - ], - "declarations": [ - { - "constant": false, - "id": 3113, - "name": "callHash", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4623:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4623:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3117, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3115, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4652:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3114, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "4642:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4642:15:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4623:34:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3118, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4665:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3120, - "indexExpression": { - "argumentTypes": null, - "id": 3119, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4679:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4665:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3121, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4665:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4699:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4665:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3139, - "nodeType": "IfStatement", - "src": "4661:151:25", - "trueBody": { - "id": 3138, - "nodeType": "Block", - "src": "4702:110:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3124, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4707:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3126, - "indexExpression": { - "argumentTypes": null, - "id": 3125, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3113, - "src": "4721:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4707:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3127, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4733:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3129, - "indexExpression": { - "argumentTypes": null, - "id": 3128, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4747:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4733:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "4707:57:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3131, - "nodeType": "ExpressionStatement", - "src": "4707:57:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3132, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "4769:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3134, - "indexExpression": { - "argumentTypes": null, - "id": 3133, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4783:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4769:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3135, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "4803:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "4769:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3137, - "nodeType": "ExpressionStatement", - "src": "4769:38:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3141, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackCalldataMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3109, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3141, - "src": "4592:17:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3108, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4592:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4591:19:25" - }, - "payable": false, - "returnParameters": { - "id": 3111, - "nodeType": "ParameterList", - "parameters": [], - "src": "4619:0:25" - }, - "scope": 4000, - "src": "4565:250:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3167, - "nodeType": "Block", - "src": "4870:161:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3146, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4878:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3148, - "indexExpression": { - "argumentTypes": null, - "id": 3147, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4892:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4878:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "4878:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3166, - "nodeType": "IfStatement", - "src": "4874:154:25", - "trueBody": { - "id": 3165, - "nodeType": "Block", - "src": "4910:118:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3151, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4915:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3153, - "indexExpression": { - "argumentTypes": null, - "id": 3152, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "4929:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4915:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3154, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4941:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3156, - "indexExpression": { - "argumentTypes": null, - "id": 3155, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4955:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4941:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4915:59:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3158, - "nodeType": "ExpressionStatement", - "src": "4915:59:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3159, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4979:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3161, - "indexExpression": { - "argumentTypes": null, - "id": 3160, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "4993:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4979:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3162, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "5015:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4979:44:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3164, - "nodeType": "ExpressionStatement", - "src": "4979:44:25" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3168, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "trackMethodIdMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3143, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3168, - "src": "4845:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3142, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4845:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4844:17:25" - }, - "payable": false, - "returnParameters": { - "id": 3145, - "nodeType": "ParameterList", - "parameters": [], - "src": "4870:0:25" - }, - "scope": 4000, - "src": "4818:213:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3182, - "nodeType": "Block", - "src": "5084:76:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3173, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5088:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3174, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5107:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5107:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5088:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3177, - "nodeType": "ExpressionStatement", - "src": "5088:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3178, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "5126:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3179, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3170, - "src": "5148:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "5126:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3181, - "nodeType": "ExpressionStatement", - "src": "5126:30:25" - } - ] - }, - "documentation": null, - "id": 3183, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3170, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3183, - "src": "5059:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3169, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5059:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5058:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [], - "src": "5084:0:25" - }, - "scope": 4000, - "src": "5034:126:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3192, - "nodeType": "Block", - "src": "5212:33:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3189, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "5232:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3188, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5216:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5216:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3191, - "nodeType": "ExpressionStatement", - "src": "5216:25:25" - } - ] - }, - "documentation": null, - "id": 3193, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3186, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3185, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3193, - "src": "5187:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3184, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5187:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5186:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3187, - "nodeType": "ParameterList", - "parameters": [], - "src": "5212:0:25" - }, - "scope": 4000, - "src": "5163:82:25", - "stateMutability": "nonpayable", - "superFunction": 2882, - "visibility": "external" - }, - { - "body": { - "id": 3211, - "nodeType": "Block", - "src": "5300:74:25", - "statements": [ - { - "assignments": [ - 3199 - ], - "declarations": [ - { - "constant": false, - "id": 3199, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5304:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3198, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5304:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3204, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3200, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3195, - "src": "5316:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5331:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5316:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5304:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3207, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3199, - "src": "5364:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3206, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5352:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5352:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3205, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5336:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5336:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3210, - "nodeType": "ExpressionStatement", - "src": "5336:34:25" - } - ] - }, - "documentation": null, - "id": 3212, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3195, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3212, - "src": "5276:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3194, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5276:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5275:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3197, - "nodeType": "ParameterList", - "parameters": [], - "src": "5300:0:25" - }, - "scope": 4000, - "src": "5248:126:25", - "stateMutability": "nonpayable", - "superFunction": 2887, - "visibility": "external" - }, - { - "body": { - "id": 3223, - "nodeType": "Block", - "src": "5429:47:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3219, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3214, - "src": "5461:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3218, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "5449:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5449:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5433:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5433:38:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3222, - "nodeType": "ExpressionStatement", - "src": "5433:38:25" - } - ] - }, - "documentation": null, - "id": 3224, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3214, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3224, - "src": "5405:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3213, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5405:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5404:15:25" - }, - "payable": false, - "returnParameters": { - "id": 3216, - "nodeType": "ParameterList", - "parameters": [], - "src": "5429:0:25" - }, - "scope": 4000, - "src": "5377:99:25", - "stateMutability": "nonpayable", - "superFunction": 2892, - "visibility": "external" - }, - { - "body": { - "id": 3235, - "nodeType": "Block", - "src": "5537:49:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3231, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3226, - "src": "5572:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3230, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "5557:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5557:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3229, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "5541:15:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5541:41:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3234, - "nodeType": "ExpressionStatement", - "src": "5541:41:25" - } - ] - }, - "documentation": null, - "id": 3236, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3227, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3226, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "5510:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5510:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5509:18:25" - }, - "payable": false, - "returnParameters": { - "id": 3228, - "nodeType": "ParameterList", - "parameters": [], - "src": "5537:0:25" - }, - "scope": 4000, - "src": "5479:107:25", - "stateMutability": "nonpayable", - "superFunction": 2897, - "visibility": "external" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "5624:72:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3239, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5628:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3240, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5647:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5647:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5628:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3243, - "nodeType": "ExpressionStatement", - "src": "5628:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3244, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5666:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5690:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "5666:26:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3247, - "nodeType": "ExpressionStatement", - "src": "5666:26:25" - } - ] - }, - "documentation": null, - "id": 3249, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3237, - "nodeType": "ParameterList", - "parameters": [], - "src": "5612:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3238, - "nodeType": "ParameterList", - "parameters": [], - "src": "5624:0:25" - }, - "scope": 4000, - "src": "5589:107:25", - "stateMutability": "nonpayable", - "superFunction": 2900, - "visibility": "external" - }, - { - "body": { - "id": 3263, - "nodeType": "Block", - "src": "5759:77:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3254, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5763:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3255, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5782:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5782:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5763:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3258, - "nodeType": "ExpressionStatement", - "src": "5763:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3259, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "5801:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3260, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "5825:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "5801:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3262, - "nodeType": "ExpressionStatement", - "src": "5801:31:25" - } - ] - }, - "documentation": null, - "id": 3264, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3264, - "src": "5734:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3250, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5734:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5733:16:25" - }, - "payable": false, - "returnParameters": { - "id": 3253, - "nodeType": "ParameterList", - "parameters": [], - "src": "5759:0:25" - }, - "scope": 4000, - "src": "5699:137:25", - "stateMutability": "nonpayable", - "superFunction": 2905, - "visibility": "external" - }, - { - "body": { - "id": 3272, - "nodeType": "Block", - "src": "5879:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3267, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5883:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3268, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "5902:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5902:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5883:36:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3271, - "nodeType": "ExpressionStatement", - "src": "5883:36:25" - } - ] - }, - "documentation": null, - "id": 3273, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3265, - "nodeType": "ParameterList", - "parameters": [], - "src": "5867:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3266, - "nodeType": "ParameterList", - "parameters": [], - "src": "5879:0:25" - }, - "scope": 4000, - "src": "5839:84:25", - "stateMutability": "nonpayable", - "superFunction": 2908, - "visibility": "external" - }, - { - "body": { - "id": 3297, - "nodeType": "Block", - "src": "5993:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3280, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "5997:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3282, - "indexExpression": { - "argumentTypes": null, - "id": 3281, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6015:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5997:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3283, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6023:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6023:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5997:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3286, - "nodeType": "ExpressionStatement", - "src": "5997:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3287, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "6042:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3289, - "indexExpression": { - "argumentTypes": null, - "id": 3288, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6063:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6042:26:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3290, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6071:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6042:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3292, - "nodeType": "ExpressionStatement", - "src": "6042:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3294, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6101:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3293, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6083:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6083:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3296, - "nodeType": "ExpressionStatement", - "src": "6083:23:25" - } - ] - }, - "documentation": null, - "id": 3298, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3275, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5956:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3274, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5956:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3277, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3298, - "src": "5968:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3276, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5968:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5955:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3279, - "nodeType": "ParameterList", - "parameters": [], - "src": "5993:0:25" - }, - "scope": 4000, - "src": "5926:184:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3310, - "nodeType": "Block", - "src": "6180:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3306, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3300, - "src": "6205:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3307, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "6211:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3305, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3298, - "src": "6184:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6184:36:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3309, - "nodeType": "ExpressionStatement", - "src": "6184:36:25" - } - ] - }, - "documentation": null, - "id": 3311, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3303, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3300, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6142:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3299, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6142:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3302, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "6154:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3301, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6154:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6141:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3304, - "nodeType": "ParameterList", - "parameters": [], - "src": "6180:0:25" - }, - "scope": 4000, - "src": "6113:111:25", - "stateMutability": "nonpayable", - "superFunction": 2960, - "visibility": "external" - }, - { - "body": { - "id": 3332, - "nodeType": "Block", - "src": "6296:83:25", - "statements": [ - { - "assignments": [ - 3319 - ], - "declarations": [ - { - "constant": false, - "id": 3319, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6300:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3318, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6300:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3324, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3320, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3315, - "src": "6312:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6327:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6312:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6323:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6300:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3326, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3313, - "src": "6351:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3328, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3319, - "src": "6369:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3327, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6357:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6357:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3325, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6332:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6332:43:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3331, - "nodeType": "ExpressionStatement", - "src": "6332:43:25" - } - ] - }, - "documentation": null, - "id": 3333, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3313, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6260:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3312, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6260:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3315, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3333, - "src": "6272:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3314, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6272:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6259:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3317, - "nodeType": "ParameterList", - "parameters": [], - "src": "6296:0:25" - }, - "scope": 4000, - "src": "6227:152:25", - "stateMutability": "nonpayable", - "superFunction": 2967, - "visibility": "external" - }, - { - "body": { - "id": 3347, - "nodeType": "Block", - "src": "6451:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3341, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3335, - "src": "6474:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3343, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "6492:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3342, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "6480:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6480:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3340, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6455:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6455:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3346, - "nodeType": "ExpressionStatement", - "src": "6455:47:25" - } - ] - }, - "documentation": null, - "id": 3348, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3335, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6415:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3334, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6415:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3337, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "6427:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6427:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6414:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3339, - "nodeType": "ParameterList", - "parameters": [], - "src": "6451:0:25" - }, - "scope": 4000, - "src": "6382:124:25", - "stateMutability": "nonpayable", - "superFunction": 2974, - "visibility": "external" - }, - { - "body": { - "id": 3362, - "nodeType": "Block", - "src": "6584:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3356, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "6607:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3358, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3352, - "src": "6628:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3357, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "6613:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3355, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6588:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6588:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3361, - "nodeType": "ExpressionStatement", - "src": "6588:50:25" - } - ] - }, - "documentation": null, - "id": 3363, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3350, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6545:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3349, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6545:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3352, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3363, - "src": "6557:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3351, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6557:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6544:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3354, - "nodeType": "ParameterList", - "parameters": [], - "src": "6584:0:25" - }, - "scope": 4000, - "src": "6509:133:25", - "stateMutability": "nonpayable", - "superFunction": 2981, - "visibility": "external" - }, - { - "body": { - "id": 3393, - "nodeType": "Block", - "src": "6709:164:25", - "statements": [ - { - "assignments": [ - 3371 - ], - "declarations": [ - { - "constant": false, - "id": 3371, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6713:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3370, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "6713:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3375, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3373, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3365, - "src": "6743:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3372, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "6729:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6729:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6713:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3376, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "6752:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3378, - "indexExpression": { - "argumentTypes": null, - "id": 3377, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6770:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6752:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3379, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "6780:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6780:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6752:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3382, - "nodeType": "ExpressionStatement", - "src": "6752:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3383, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "6799:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3385, - "indexExpression": { - "argumentTypes": null, - "id": 3384, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6820:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6799:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3386, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3367, - "src": "6830:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6799:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3388, - "nodeType": "ExpressionStatement", - "src": "6799:39:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3390, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "6860:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3389, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "6842:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6842:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3392, - "nodeType": "ExpressionStatement", - "src": "6842:25:25" - } - ] - }, - "documentation": null, - "id": 3394, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3365, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6673:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3364, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6673:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3367, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3394, - "src": "6685:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3366, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6685:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6672:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [], - "src": "6709:0:25" - }, - "scope": 4000, - "src": "6645:228:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3406, - "nodeType": "Block", - "src": "6940:42:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3402, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "6963:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3403, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "6969:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3401, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "6944:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6944:34:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3405, - "nodeType": "ExpressionStatement", - "src": "6944:34:25" - } - ] - }, - "documentation": null, - "id": 3407, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3396, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6903:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3395, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6903:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3398, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "6915:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3397, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6915:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6902:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3400, - "nodeType": "ParameterList", - "parameters": [], - "src": "6940:0:25" - }, - "scope": 4000, - "src": "6876:106:25", - "stateMutability": "nonpayable", - "superFunction": 2915, - "visibility": "external" - }, - { - "body": { - "id": 3428, - "nodeType": "Block", - "src": "7052:83:25", - "statements": [ - { - "assignments": [ - 3415 - ], - "declarations": [ - { - "constant": false, - "id": 3415, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7056:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3414, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7056:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3420, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3416, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3411, - "src": "7068:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7083:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7068:16:25", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7079:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7056:28:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3422, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3409, - "src": "7107:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3424, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3415, - "src": "7125:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3423, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7113:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7113:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3421, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7088:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7088:43:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3427, - "nodeType": "ExpressionStatement", - "src": "7088:43:25" - } - ] - }, - "documentation": null, - "id": 3429, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3412, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3409, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7016:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3408, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7016:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3411, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3429, - "src": "7028:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3410, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7028:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7015:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3413, - "nodeType": "ParameterList", - "parameters": [], - "src": "7052:0:25" - }, - "scope": 4000, - "src": "6985:150:25", - "stateMutability": "nonpayable", - "superFunction": 2922, - "visibility": "external" - }, - { - "body": { - "id": 3443, - "nodeType": "Block", - "src": "7205:55:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3437, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "7228:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3439, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3433, - "src": "7246:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3438, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "7234:11:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7234:21:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3436, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7209:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7209:47:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3442, - "nodeType": "ExpressionStatement", - "src": "7209:47:25" - } - ] - }, - "documentation": null, - "id": 3444, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3431, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7169:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3430, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7169:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3433, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "7181:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3432, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7181:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7168:27:25" - }, - "payable": false, - "returnParameters": { - "id": 3435, - "nodeType": "ParameterList", - "parameters": [], - "src": "7205:0:25" - }, - "scope": 4000, - "src": "7138:122:25", - "stateMutability": "nonpayable", - "superFunction": 2929, - "visibility": "external" - }, - { - "body": { - "id": 3458, - "nodeType": "Block", - "src": "7336:58:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3452, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "7359:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3454, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3448, - "src": "7380:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3453, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3844, - "src": "7365:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7365:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3451, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3394, - "src": "7340:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7340:50:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3457, - "nodeType": "ExpressionStatement", - "src": "7340:50:25" - } - ] - }, - "documentation": null, - "id": 3459, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7297:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7297:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3448, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3459, - "src": "7309:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3447, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7309:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7296:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3450, - "nodeType": "ParameterList", - "parameters": [], - "src": "7336:0:25" - }, - "scope": 4000, - "src": "7263:131:25", - "stateMutability": "nonpayable", - "superFunction": 2936, - "visibility": "external" - }, - { - "body": { - "id": 3481, - "nodeType": "Block", - "src": "7447:112:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3464, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7451:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3466, - "indexExpression": { - "argumentTypes": null, - "id": 3465, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7469:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7451:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3467, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7477:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7477:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7451:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3470, - "nodeType": "ExpressionStatement", - "src": "7451:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3471, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7496:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3473, - "indexExpression": { - "argumentTypes": null, - "id": 3472, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7518:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7496:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7526:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "7496:32:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3476, - "nodeType": "ExpressionStatement", - "src": "7496:32:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3478, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7550:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3477, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7532:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7532:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3480, - "nodeType": "ExpressionStatement", - "src": "7532:23:25" - } - ] - }, - "documentation": null, - "id": 3482, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3461, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3482, - "src": "7426:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3460, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7426:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7425:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3463, - "nodeType": "ParameterList", - "parameters": [], - "src": "7447:0:25" - }, - "scope": 4000, - "src": "7397:162:25", - "stateMutability": "nonpayable", - "superFunction": 2986, - "visibility": "external" - }, - { - "body": { - "id": 3504, - "nodeType": "Block", - "src": "7610:121:25", - "statements": [ - { - "assignments": [ - 3488 - ], - "declarations": [ - { - "constant": false, - "id": 3488, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7614:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3487, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7614:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3490, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3484, - "src": "7644:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3489, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "7630:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7630:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7614:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3493, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "7653:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3495, - "indexExpression": { - "argumentTypes": null, - "id": 3494, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7671:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7653:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3496, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7681:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7681:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7653:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3499, - "nodeType": "ExpressionStatement", - "src": "7653:43:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3501, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "7718:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3500, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "7700:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7700:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "7700:25:25" - } - ] - }, - "documentation": null, - "id": 3505, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3484, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3505, - "src": "7589:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3483, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7589:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7588:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3486, - "nodeType": "ParameterList", - "parameters": [], - "src": "7610:0:25" - }, - "scope": 4000, - "src": "7562:169:25", - "stateMutability": "nonpayable", - "superFunction": 2941, - "visibility": "external" - }, - { - "body": { - "id": 3529, - "nodeType": "Block", - "src": "7811:117:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3512, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "7815:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3514, - "indexExpression": { - "argumentTypes": null, - "id": 3513, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7833:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7815:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3515, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "7841:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7841:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7815:41:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3518, - "nodeType": "ExpressionStatement", - "src": "7815:41:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3519, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "7860:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3521, - "indexExpression": { - "argumentTypes": null, - "id": 3520, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7882:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7860:27:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3522, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3509, - "src": "7890:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "7860:37:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3524, - "nodeType": "ExpressionStatement", - "src": "7860:37:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3526, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3507, - "src": "7919:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3525, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7901:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7901:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "7901:23:25" - } - ] - }, - "documentation": null, - "id": 3530, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3510, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3507, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7774:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3506, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7774:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3509, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3530, - "src": "7786:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3508, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7786:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7773:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3511, - "nodeType": "ParameterList", - "parameters": [], - "src": "7811:0:25" - }, - "scope": 4000, - "src": "7734:194:25", - "stateMutability": "nonpayable", - "superFunction": 2993, - "visibility": "external" - }, - { - "body": { - "id": 3560, - "nodeType": "Block", - "src": "8006:165:25", - "statements": [ - { - "assignments": [ - 3538 - ], - "declarations": [ - { - "constant": false, - "id": 3538, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "8010:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3537, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8010:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3542, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3540, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3532, - "src": "8040:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3539, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8026:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8026:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8010:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3543, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8049:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3545, - "indexExpression": { - "argumentTypes": null, - "id": 3544, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8067:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8049:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3546, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8077:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8077:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8049:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3549, - "nodeType": "ExpressionStatement", - "src": "8049:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3550, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "8096:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3552, - "indexExpression": { - "argumentTypes": null, - "id": 3551, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8119:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8096:30:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3553, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "8129:7:25", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "8096:40:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3555, - "nodeType": "ExpressionStatement", - "src": "8096:40:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3538, - "src": "8158:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3556, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8140:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8140:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3559, - "nodeType": "ExpressionStatement", - "src": "8140:25:25" - } - ] - }, - "documentation": null, - "id": 3561, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3535, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3532, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7969:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3531, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7969:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3534, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "7981:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3533, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7981:6:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7968:28:25" - }, - "payable": false, - "returnParameters": { - "id": 3536, - "nodeType": "ParameterList", - "parameters": [], - "src": "8006:0:25" - }, - "scope": 4000, - "src": "7931:240:25", - "stateMutability": "nonpayable", - "superFunction": 2948, - "visibility": "external" - }, - { - "body": { - "id": 3577, - "nodeType": "Block", - "src": "8229:78:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3566, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "8233:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3568, - "indexExpression": { - "argumentTypes": null, - "id": 3567, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8251:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8233:23:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3569, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8259:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3570, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8259:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8233:43:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3572, - "nodeType": "ExpressionStatement", - "src": "8233:43:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3574, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "8298:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3573, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "8280:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8280:23:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3576, - "nodeType": "ExpressionStatement", - "src": "8280:23:25" - } - ] - }, - "documentation": null, - "id": 3578, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3564, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3563, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "8208:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3562, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8208:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8207:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3565, - "nodeType": "ParameterList", - "parameters": [], - "src": "8229:0:25" - }, - "scope": 4000, - "src": "8174:133:25", - "stateMutability": "nonpayable", - "superFunction": 2998, - "visibility": "external" - }, - { - "body": { - "id": 3600, - "nodeType": "Block", - "src": "8363:122:25", - "statements": [ - { - "assignments": [ - 3584 - ], - "declarations": [ - { - "constant": false, - "id": 3584, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8367:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3583, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8367:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3588, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3586, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3580, - "src": "8397:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3585, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8383:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8383:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8367:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3589, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8406:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3591, - "indexExpression": { - "argumentTypes": null, - "id": 3590, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8424:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8406:25:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3592, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "8434:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8434:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8406:45:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3595, - "nodeType": "ExpressionStatement", - "src": "8406:45:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3597, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "8473:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3596, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3168, - "src": "8455:17:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8455:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3599, - "nodeType": "ExpressionStatement", - "src": "8455:25:25" - } - ] - }, - "documentation": null, - "id": 3601, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3581, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3580, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "8342:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3579, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8342:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8341:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3582, - "nodeType": "ParameterList", - "parameters": [], - "src": "8363:0:25" - }, - "scope": 4000, - "src": "8310:175:25", - "stateMutability": "nonpayable", - "superFunction": 2953, - "visibility": "external" - }, - { - "body": { - "id": 3608, - "nodeType": "Block", - "src": "8539:26:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3606, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "8550:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3605, - "id": 3607, - "nodeType": "Return", - "src": "8543:18:25" - } - ] - }, - "documentation": null, - "id": 3609, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "8512:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3604, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3609, - "src": "8533:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3603, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8533:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8532:6:25" - }, - "scope": 4000, - "src": "8488:77:25", - "stateMutability": "nonpayable", - "superFunction": 3003, - "visibility": "external" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "8638:122:25", - "statements": [ - { - "assignments": [ - 3617 - ], - "declarations": [ - { - "constant": false, - "id": 3617, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8642:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3616, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8642:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3621, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3619, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "8672:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3618, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "8658:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8658:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8642:35:25" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3622, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "8688:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3630, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3626, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8735:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3627, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3617, - "src": "8747:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 3624, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8718:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3625, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8718:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8718:36:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3623, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8708:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8708:47:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8688:68:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3615, - "id": 3631, - "nodeType": "Return", - "src": "8681:75:25" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3612, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3611, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8602:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3610, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8602:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8601:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3615, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3614, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "8632:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3613, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8632:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8631:6:25" - }, - "scope": 4000, - "src": "8568:192:25", - "stateMutability": "nonpayable", - "superFunction": 3010, - "visibility": "external" - }, - { - "body": { - "id": 3650, - "nodeType": "Block", - "src": "8835:81:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3640, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "8846:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3648, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "8893:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3635, - "src": "8905:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 3642, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "8876:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8876:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8876:34:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3641, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "8866:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8866:45:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8846:66:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3639, - "id": 3649, - "nodeType": "Return", - "src": "8839:73:25" - } - ] - }, - "documentation": null, - "id": 3651, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3636, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3635, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8799:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3634, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8799:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8798:12:25" - }, - "payable": false, - "returnParameters": { - "id": 3639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3638, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3651, - "src": "8829:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3637, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8829:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8828:6:25" - }, - "scope": 4000, - "src": "8763:153:25", - "stateMutability": "nonpayable", - "superFunction": 3017, - "visibility": "external" - }, - { - "body": { - "id": 3783, - "nodeType": "Block", - "src": "8945:1265:25", - "statements": [ - { - "assignments": [ - 3655 - ], - "declarations": [ - { - "constant": false, - "id": 3655, - "name": "nextMock", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "8984:21:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3654, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8984:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3659, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3656, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9008:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3658, - "indexExpression": { - "argumentTypes": null, - "id": 3657, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9022:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9008:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8984:55:25" - }, - { - "assignments": [ - 3661 - ], - "declarations": [ - { - "constant": false, - "id": 3661, - "name": "mockHash", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9043:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3660, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9043:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3665, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3663, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9072:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3662, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9062:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9062:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9043:38:25" - }, - { - "body": { - "id": 3706, - "nodeType": "Block", - "src": "9153:355:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3669, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "9184:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3671, - "indexExpression": { - "argumentTypes": null, - "id": 3670, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9202:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9184:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3672, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9214:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9214:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "9184:45:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3675, - "nodeType": "ExpressionStatement", - "src": "9184:45:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3676, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "9234:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3678, - "indexExpression": { - "argumentTypes": null, - "id": 3677, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9255:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9234:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9267:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9234:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3681, - "nodeType": "ExpressionStatement", - "src": "9234:38:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3682, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "9277:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3684, - "indexExpression": { - "argumentTypes": null, - "id": 3683, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9299:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9277:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9311:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9277:36:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3687, - "nodeType": "ExpressionStatement", - "src": "9277:36:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9348:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3689, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9359:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3691, - "indexExpression": { - "argumentTypes": null, - "id": 3690, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9373:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9359:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "9348:34:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3693, - "nodeType": "ExpressionStatement", - "src": "9348:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3694, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9417:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3696, - "indexExpression": { - "argumentTypes": null, - "id": 3695, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9431:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9417:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9443:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9417:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "9417:28:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9473:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3702, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "9494:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3701, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "9484:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9484:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9473:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3705, - "nodeType": "ExpressionStatement", - "src": "9473:30:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 3668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3666, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3661, - "src": "9120:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 3667, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "9132:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9120:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3707, - "nodeType": "WhileStatement", - "src": "9114:394:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3708, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "9527:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3710, - "indexExpression": { - "argumentTypes": null, - "id": 3709, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "9541:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9527:31:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3711, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3033, - "src": "9561:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "9527:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3713, - "nodeType": "ExpressionStatement", - "src": "9527:48:25" - }, - { - "assignments": [ - 3715 - ], - "declarations": [ - { - "constant": false, - "id": 3715, - "name": "nextAnyMock", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9613:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3714, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "9613:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3719, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3716, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9634:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3718, - "indexExpression": { - "argumentTypes": null, - "id": 3717, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9648:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9634:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9613:54:25" - }, - { - "body": { - "id": 3758, - "nodeType": "Block", - "src": "9712:316:25", - "statements": [ - { - "assignments": [ - 3724 - ], - "declarations": [ - { - "constant": false, - "id": 3724, - "name": "currentAnyMock", - "nodeType": "VariableDeclaration", - "scope": 3784, - "src": "9717:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3723, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "9717:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3726, - "initialValue": { - "argumentTypes": null, - "id": 3725, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9741:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9717:35:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3727, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "9757:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3729, - "indexExpression": { - "argumentTypes": null, - "id": 3728, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9775:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9757:33:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "9793:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9793:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "9757:51:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3733, - "nodeType": "ExpressionStatement", - "src": "9757:51:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3734, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "9813:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "id": 3735, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9834:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9813:36:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9852:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9813:44:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3739, - "nodeType": "ExpressionStatement", - "src": "9813:44:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3740, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "9862:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3742, - "indexExpression": { - "argumentTypes": null, - "id": 3741, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9885:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9862:38:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3743, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9903:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9862:43:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3745, - "nodeType": "ExpressionStatement", - "src": "9862:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3746, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9910:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9924:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "9938:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9924:29:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "9910:43:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3751, - "nodeType": "ExpressionStatement", - "src": "9910:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3752, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "9988:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3754, - "indexExpression": { - "argumentTypes": null, - "id": 3753, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "10002:14:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9988:29:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10020:3:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "9988:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3757, - "nodeType": "ExpressionStatement", - "src": "9988:35:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3720, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "9677:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 3721, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "9692:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "9677:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3759, - "nodeType": "WhileStatement", - "src": "9671:357:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3760, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "10047:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3762, - "indexExpression": { - "argumentTypes": null, - "id": 3761, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10061:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10047:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3763, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "10083:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10047:54:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3765, - "nodeType": "ExpressionStatement", - "src": "10047:54:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3766, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "10106:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10128:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10106:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3769, - "nodeType": "ExpressionStatement", - "src": "10106:24:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3770, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "10134:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3771, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "10153:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10153:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "10134:34:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3774, - "nodeType": "ExpressionStatement", - "src": "10134:34:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3775, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "10172:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 3776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10186:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10172:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3778, - "nodeType": "ExpressionStatement", - "src": "10172:15:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3779, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "10191:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10205:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10191:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3782, - "nodeType": "ExpressionStatement", - "src": "10191:15:25" - } - ] - }, - "documentation": null, - "id": 3784, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3652, - "nodeType": "ParameterList", - "parameters": [], - "src": "8933:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3653, - "nodeType": "ParameterList", - "parameters": [], - "src": "8945:0:25" - }, - "scope": 4000, - "src": "8919:1291:25", - "stateMutability": "nonpayable", - "superFunction": 3020, - "visibility": "external" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "10242:157:25", - "statements": [ - { - "body": { - "id": 3792, - "nodeType": "Block", - "src": "10258:138:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3789, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "10263:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3788, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10263:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3790, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10263:6:25" - }, - { - "externalReferences": [ - { - "s": { - "declaration": 3789, - "isOffset": false, - "isSlot": false, - "src": "10334:1:25", - "valueSize": 1 - } - } - ], - "id": 3791, - "nodeType": "InlineAssembly", - "operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}", - "src": "10274:122:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10252:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "id": 3793, - "nodeType": "WhileStatement", - "src": "10246:150:25" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "useAllGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3785, - "nodeType": "ParameterList", - "parameters": [], - "src": "10231:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [], - "src": "10242:0:25" - }, - "scope": 4000, - "src": "10213:186:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3834, - "nodeType": "Block", - "src": "10464:122:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3803, - "name": "out", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10470:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3802, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10470:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3804, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10470:10:25" - }, - { - "body": { - "id": 3830, - "nodeType": "Block", - "src": "10515:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3815, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10523:3:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "id": 3821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3817, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "10537:1:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3819, - "indexExpression": { - "argumentTypes": null, - "id": 3818, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10539:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10537:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30784646", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10544:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "value": "0xFF" - }, - "src": "10537:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - ], - "id": 3816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10530:6:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 3822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10530:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3823, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10554:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "38", - "id": 3824, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10558:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "10554:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3826, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10553:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10530:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10523:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3829, - "nodeType": "ExpressionStatement", - "src": "10523:37:25" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3809, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10503:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 3810, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10507:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "10503:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3831, - "initializationExpression": { - "assignments": [ - 3806 - ], - "declarations": [ - { - "constant": false, - "id": 3806, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10491:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3805, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10491:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3808, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3807, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10500:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10491:10:25" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10510:3:25", - "subExpression": { - "argumentTypes": null, - "id": 3812, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3806, - "src": "10510:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3814, - "nodeType": "ExpressionStatement", - "src": "10510:3:25" - }, - "nodeType": "ForStatement", - "src": "10486:81:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3832, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3803, - "src": "10579:3:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "functionReturnParameters": 3801, - "id": 3833, - "nodeType": "Return", - "src": "10572:10:25" - } - ] - }, - "documentation": null, - "id": 3835, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "bytesToBytes4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3798, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10425:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3796, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10425:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10424:9:25" - }, - "payable": false, - "returnParameters": { - "id": 3801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3800, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3835, - "src": "10456:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3799, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10456:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10455:8:25" - }, - "scope": 4000, - "src": "10402:184:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3843, - "nodeType": "Block", - "src": "10654:189:25", - "statements": [ - { - "externalReferences": [ - { - "b": { - "declaration": 3840, - "isOffset": false, - "isSlot": false, - "src": "10827:1:25", - "valueSize": 1 - } - }, - { - "a": { - "declaration": 3837, - "isOffset": false, - "isSlot": false, - "src": "10780:1:25", - "valueSize": 1 - } - } - ], - "id": 3842, - "nodeType": "InlineAssembly", - "operations": "{\n let m := mload(0x40)\n mstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n mstore(0x40, add(m, 52))\n b := m\n}", - "src": "10661:182:25" - } - ] - }, - "documentation": null, - "id": 3844, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "addressToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3837, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10613:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3836, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10613:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10612:11:25" - }, - "payable": false, - "returnParameters": { - "id": 3841, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3840, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3844, - "src": "10646:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3839, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10646:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10645:9:25" - }, - "scope": 4000, - "src": "10589:254:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3859, - "nodeType": "Block", - "src": "10909:68:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3851, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3849, - "src": "10916:1:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 3854, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10930:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "id": 3853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "10920:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 3852, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10924:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10920:13:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "10916:17:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3857, - "nodeType": "ExpressionStatement", - "src": "10916:17:25" - }, - { - "externalReferences": [ - { - "x": { - "declaration": 3846, - "isOffset": false, - "isSlot": false, - "src": "10970:1:25", - "valueSize": 1 - } - }, - { - "b": { - "declaration": 3849, - "isOffset": false, - "isSlot": false, - "src": "10962:1:25", - "valueSize": 1 - } - } - ], - "id": 3858, - "nodeType": "InlineAssembly", - "operations": "{\n mstore(add(b, 32), x)\n}", - "src": "10940:37:25" - } - ] - }, - "documentation": null, - "id": 3860, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "uintToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3847, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3846, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10867:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3845, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10867:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10866:11:25" - }, - "payable": false, - "returnParameters": { - "id": 3850, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3849, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3860, - "src": "10900:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3848, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10900:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10899:9:25" - }, - "scope": 4000, - "src": "10846:131:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3998, - "nodeType": "Block", - "src": "11008:1178:25", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 3864, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11012:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3863, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11012:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3865, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "11012:15:25" - }, - { - "externalReferences": [ - { - "methodId": { - "declaration": 3864, - "isOffset": false, - "isSlot": false, - "src": "11045:8:25", - "valueSize": 1 - } - } - ], - "id": 3866, - "nodeType": "InlineAssembly", - "operations": "{\n methodId := calldataload(0)\n}", - "src": "11031:94:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3867, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11127:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3870, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3868, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11145:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11145:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11127:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3871, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11158:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11158:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11127:46:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3882, - "nodeType": "IfStatement", - "src": "11123:101:25", - "trueBody": { - "id": 3881, - "nodeType": "Block", - "src": "11175:49:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3875, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "11187:21:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3878, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3876, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11209:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11209:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11187:31:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 3874, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "11180:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11180:39:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3880, - "nodeType": "ExpressionStatement", - "src": "11180:39:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3883, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "11231:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3886, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3884, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11249:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11249:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11231:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3887, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11262:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11262:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11231:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3894, - "nodeType": "IfStatement", - "src": "11227:75:25", - "trueBody": { - "id": 3893, - "nodeType": "Block", - "src": "11281:21:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3890, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11286:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11286:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3892, - "nodeType": "ExpressionStatement", - "src": "11286:11:25" - } - ] - } - }, - { - "assignments": [ - 3896 - ], - "declarations": [ - { - "constant": false, - "id": 3896, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 3999, - "src": "11305:19:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3895, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11305:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3901, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3897, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "11327:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3900, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3898, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "11348:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11348:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11327:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11305:52:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3902, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11402:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11402:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11419:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11402:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3938, - "nodeType": "IfStatement", - "src": "11398:262:25", - "trueBody": { - "id": 3937, - "nodeType": "Block", - "src": "11422:238:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3906, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11431:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3908, - "indexExpression": { - "argumentTypes": null, - "id": 3907, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11449:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11431:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3909, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11462:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3910, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11462:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11431:46:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3919, - "nodeType": "IfStatement", - "src": "11427:104:25", - "trueBody": { - "id": 3918, - "nodeType": "Block", - "src": "11479:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3913, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "11492:22:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3915, - "indexExpression": { - "argumentTypes": null, - "id": 3914, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11515:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11492:32:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 3912, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "11485:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11485:40:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "11485:40:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3920, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "11539:17:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3027_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3922, - "indexExpression": { - "argumentTypes": null, - "id": 3921, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11557:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11539:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3923, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11570:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11570:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11539:48:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3930, - "nodeType": "IfStatement", - "src": "11535:77:25", - "trueBody": { - "id": 3929, - "nodeType": "Block", - "src": "11589:23:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3926, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11595:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11595:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3928, - "nodeType": "ExpressionStatement", - "src": "11595:11:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3931, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11616:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3932, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3073, - "src": "11625:20:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3934, - "indexExpression": { - "argumentTypes": null, - "id": 3933, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "11646:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11625:30:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "11616:39:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3936, - "nodeType": "ExpressionStatement", - "src": "11616:39:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3939, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11705:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11705:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3941, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11722:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11705:18:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3967, - "nodeType": "IfStatement", - "src": "11701:218:25", - "trueBody": { - "id": 3966, - "nodeType": "Block", - "src": "11725:194:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3943, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11734:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3944, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11754:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11754:15:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11734:35:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3952, - "nodeType": "IfStatement", - "src": "11730:82:25", - "trueBody": { - "id": 3951, - "nodeType": "Block", - "src": "11771:41:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3948, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3087, - "src": "11784:21:25", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 3947, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4020, - 4021 - ], - "referencedDeclaration": 4021, - "src": "11777:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11777:29:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3950, - "nodeType": "ExpressionStatement", - "src": "11777:29:25" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - }, - "id": 3956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3953, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11820:16:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3954, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3027, - "src": "11840:8:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3027_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3955, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11840:17:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3027", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11820:37:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3961, - "nodeType": "IfStatement", - "src": "11816:66:25", - "trueBody": { - "id": 3960, - "nodeType": "Block", - "src": "11859:23:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3957, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3795, - "src": "11865:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 3958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11865:11:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3959, - "nodeType": "ExpressionStatement", - "src": "11865:11:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3962, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "11886:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3963, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3085, - "src": "11895:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "11886:28:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3965, - "nodeType": "ExpressionStatement", - "src": "11886:28:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3968, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "11946:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3969, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11961:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11946:16:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3971, - "nodeType": "ExpressionStatement", - "src": "11946:16:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3972, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "11966:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3980, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3976, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12013:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3977, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3864, - "src": "12025:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 3974, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "11996:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11996:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11996:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3973, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "11986:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11986:49:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11966:70:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3981, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12040:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11966:75:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3983, - "nodeType": "ExpressionStatement", - "src": "11966:75:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3984, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "12045:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3993, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3988, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3091, - "src": "12092:10:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3989, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "12104:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12104:8:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 3986, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "12075:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3987, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12075:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12075:38:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3985, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "12065:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12065:49:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12045:70:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12119:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12045:75:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3996, - "nodeType": "ExpressionStatement", - "src": "12045:75:25" - }, - { - "externalReferences": [ - { - "result": { - "declaration": 3896, - "isOffset": false, - "isSlot": false, - "src": "12156:6:25", - "valueSize": 1 - } - }, - { - "result": { - "declaration": 3896, - "isOffset": false, - "isSlot": false, - "src": "12171:6:25", - "valueSize": 1 - } - } - ], - "id": 3997, - "nodeType": "InlineAssembly", - "operations": "{\n return(add(0x20, result), mload(result))\n}", - "src": "12125:61:25" - } - ] - }, - "documentation": null, - "id": 3999, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3861, - "nodeType": "ParameterList", - "parameters": [], - "src": "10988:2:25" - }, - "payable": true, - "returnParameters": { - "id": 3862, - "nodeType": "ParameterList", - "parameters": [], - "src": "11008:0:25" - }, - "scope": 4000, - "src": "10980:1206:25", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4001, - "src": "3453:8735:25" - } - ], - "src": "0:12189:25" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.953Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Module.json b/safe-contracts/build/contracts/Module.json deleted file mode 100644 index 985b9649..00000000 --- a/safe-contracts/build/contracts/Module.json +++ /dev/null @@ -1,1230 +0,0 @@ -{ - "contractName": "Module", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "manager", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - } - ], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610320806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058206735a74f4afef13f3b2701cdd3899ee378ad1eb5d0cd64887ffd5885365545ee0029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058206735a74f4afef13f3b2701cdd3899ee378ad1eb5d0cd64887ffd5885365545ee0029", - "sourceMap": "233:511:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;233:511:4;;;;;;;", - "deployedSourceMap": "233:511:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;;;;;;;;;;;;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o", - "source": "pragma solidity 0.4.24;\nimport \"../common/MasterCopy.sol\";\nimport \"./ModuleManager.sol\";\n\n\n/// @title Module - Base class for modules.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract Module is MasterCopy {\n\n ModuleManager public manager;\n\n modifier authorized() {\n require(msg.sender == address(manager), \"Method can only be called from manager\");\n _;\n }\n\n function setManager()\n internal\n {\n // manager can only be 0 at initalization of contract.\n // Check ensures that setup function can only be called once.\n require(address(manager) == 0, \"Manager has already been set\");\n manager = ModuleManager(msg.sender);\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "exportedSymbols": { - "Module": [ - 935 - ] - }, - "id": 936, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 894, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "file": "../common/MasterCopy.sol", - "id": 895, - "nodeType": "ImportDirective", - "scope": 936, - "sourceUnit": 1694, - "src": "24:34:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "./ModuleManager.sol", - "id": 896, - "nodeType": "ImportDirective", - "scope": 936, - "sourceUnit": 1213, - "src": "59:29:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 897, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1693, - "src": "252:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$1693", - "typeString": "contract MasterCopy" - } - }, - "id": 898, - "nodeType": "InheritanceSpecifier", - "src": "252:10:4" - } - ], - "contractDependencies": [ - 1693, - 1735 - ], - "contractKind": "contract", - "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 935, - "linearizedBaseContracts": [ - 935, - 1693, - 1735 - ], - "name": "Module", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 900, - "name": "manager", - "nodeType": "VariableDeclaration", - "scope": 935, - "src": "270:28:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - }, - "typeName": { - "contractScope": null, - "id": 899, - "name": "ModuleManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1212, - "src": "270:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 913, - "nodeType": "Block", - "src": "327:109:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 903, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "345:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "345:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 906, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "367:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "359:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "359:16:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "345:30:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572", - "id": 909, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "377:40:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", - "typeString": "literal_string \"Method can only be called from manager\"" - }, - "value": "Method can only be called from manager" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", - "typeString": "literal_string \"Method can only be called from manager\"" - } - ], - "id": 902, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "337:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "337:81:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 911, - "nodeType": "ExpressionStatement", - "src": "337:81:4" - }, - { - "id": 912, - "nodeType": "PlaceholderStatement", - "src": "428:1:4" - } - ] - }, - "documentation": null, - "id": 914, - "name": "authorized", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 901, - "nodeType": "ParameterList", - "parameters": [], - "src": "324:2:4" - }, - "src": "305:131:4", - "visibility": "internal" - }, - { - "body": { - "id": 933, - "nodeType": "Block", - "src": "485:257:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 919, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "644:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "636:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "636:16:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "656:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "636:21:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d616e616765722068617320616c7265616479206265656e20736574", - "id": 923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "659:30:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", - "typeString": "literal_string \"Manager has already been set\"" - }, - "value": "Manager has already been set" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", - "typeString": "literal_string \"Manager has already been set\"" - } - ], - "id": 917, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "628:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "628:62:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 925, - "nodeType": "ExpressionStatement", - "src": "628:62:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 926, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "700:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 928, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "724:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "724:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 927, - "name": "ModuleManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1212, - "src": "710:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1212_$", - "typeString": "type(contract ModuleManager)" - } - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "710:25:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "src": "700:35:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 932, - "nodeType": "ExpressionStatement", - "src": "700:35:4" - } - ] - }, - "documentation": null, - "id": 934, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setManager", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 915, - "nodeType": "ParameterList", - "parameters": [], - "src": "461:2:4" - }, - "payable": false, - "returnParameters": { - "id": 916, - "nodeType": "ParameterList", - "parameters": [], - "src": "485:0:4" - }, - "scope": 935, - "src": "442:300:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 936, - "src": "233:511:4" - } - ], - "src": "0:745:4" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "exportedSymbols": { - "Module": [ - 935 - ] - }, - "id": 936, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 894, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "file": "../common/MasterCopy.sol", - "id": 895, - "nodeType": "ImportDirective", - "scope": 936, - "sourceUnit": 1694, - "src": "24:34:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "./ModuleManager.sol", - "id": 896, - "nodeType": "ImportDirective", - "scope": 936, - "sourceUnit": 1213, - "src": "59:29:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 897, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1693, - "src": "252:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$1693", - "typeString": "contract MasterCopy" - } - }, - "id": 898, - "nodeType": "InheritanceSpecifier", - "src": "252:10:4" - } - ], - "contractDependencies": [ - 1693, - 1735 - ], - "contractKind": "contract", - "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 935, - "linearizedBaseContracts": [ - 935, - 1693, - 1735 - ], - "name": "Module", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 900, - "name": "manager", - "nodeType": "VariableDeclaration", - "scope": 935, - "src": "270:28:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - }, - "typeName": { - "contractScope": null, - "id": 899, - "name": "ModuleManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1212, - "src": "270:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 913, - "nodeType": "Block", - "src": "327:109:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 903, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "345:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "345:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 906, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "367:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "359:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "359:16:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "345:30:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572", - "id": 909, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "377:40:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", - "typeString": "literal_string \"Method can only be called from manager\"" - }, - "value": "Method can only be called from manager" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", - "typeString": "literal_string \"Method can only be called from manager\"" - } - ], - "id": 902, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "337:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "337:81:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 911, - "nodeType": "ExpressionStatement", - "src": "337:81:4" - }, - { - "id": 912, - "nodeType": "PlaceholderStatement", - "src": "428:1:4" - } - ] - }, - "documentation": null, - "id": 914, - "name": "authorized", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 901, - "nodeType": "ParameterList", - "parameters": [], - "src": "324:2:4" - }, - "src": "305:131:4", - "visibility": "internal" - }, - { - "body": { - "id": 933, - "nodeType": "Block", - "src": "485:257:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 919, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "644:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "636:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "636:16:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "656:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "636:21:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d616e616765722068617320616c7265616479206265656e20736574", - "id": 923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "659:30:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", - "typeString": "literal_string \"Manager has already been set\"" - }, - "value": "Manager has already been set" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", - "typeString": "literal_string \"Manager has already been set\"" - } - ], - "id": 917, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "628:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "628:62:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 925, - "nodeType": "ExpressionStatement", - "src": "628:62:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 926, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "700:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 928, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "724:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "724:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 927, - "name": "ModuleManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1212, - "src": "710:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1212_$", - "typeString": "type(contract ModuleManager)" - } - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "710:25:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "src": "700:35:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 932, - "nodeType": "ExpressionStatement", - "src": "700:35:4" - } - ] - }, - "documentation": null, - "id": 934, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setManager", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 915, - "nodeType": "ParameterList", - "parameters": [], - "src": "461:2:4" - }, - "payable": false, - "returnParameters": { - "id": 916, - "nodeType": "ParameterList", - "parameters": [], - "src": "485:0:4" - }, - "scope": 935, - "src": "442:300:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 936, - "src": "233:511:4" - } - ], - "src": "0:745:4" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.910Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/ModuleManager.json b/safe-contracts/build/contracts/ModuleManager.json deleted file mode 100644 index b0e4be35..00000000 --- a/safe-contracts/build/contracts/ModuleManager.json +++ /dev/null @@ -1,7572 +0,0 @@ -{ - "contractName": "ModuleManager", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "SENTINEL_MODULES", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "module", - "type": "address" - } - ], - "name": "EnabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "module", - "type": "address" - } - ], - "name": "DisabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "newContract", - "type": "address" - } - ], - "name": "ContractCreation", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevModule", - "type": "address" - }, - { - "name": "module", - "type": "address" - } - ], - "name": "disableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModule", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getModules", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50611083806100206000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a71461006f578063610b59251461012757806385e332cd1461016a578063b2494df3146101c1578063e009cfde1461022d575b005b34801561007b57600080fd5b5061010d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610290565b604051808215151515815260200191505060405180910390f35b34801561013357600080fd5b50610168600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103bb565b005b34801561017657600080fd5b5061017f6107f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cd57600080fd5b506101d66107fd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102195780820151818401526020810190506101fe565b505050509050019250505060405180910390f35b34801561023957600080fd5b5061028e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa0565b005b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156103a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6103b1858585855a610f18565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156104d85750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561054c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600181565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561090f576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061086b565b8260405190808252806020026020018201604052801561093e5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a97578181848151811015156109ed57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506109a8565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610bbd5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610c31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b60008060006002811115610f2857fe5b846002811115610f3457fe5b1415610f4d57610f4687878786611015565b915061100b565b60016002811115610f5a57fe5b846002811115610f6657fe5b1415610f7e57610f7787868561102e565b915061100a565b610f8785611045565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820b03a2427075cac45bbdeb264b166fb8b827b7633a6c00d861f316e04ef37ba630029", - "deployedBytecode": "0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a71461006f578063610b59251461012757806385e332cd1461016a578063b2494df3146101c1578063e009cfde1461022d575b005b34801561007b57600080fd5b5061010d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610290565b604051808215151515815260200191505060405180910390f35b34801561013357600080fd5b50610168600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103bb565b005b34801561017657600080fd5b5061017f6107f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cd57600080fd5b506101d66107fd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102195780820151818401526020810190506101fe565b505050509050019250505060405180910390f35b34801561023957600080fd5b5061028e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa0565b005b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156103a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6103b1858585855a610f18565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156104d85750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561054c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600181565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561090f576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061086b565b8260405190808252806020026020018201604052801561093e5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a97578181848151811015156109ed57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506109a8565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610bbd5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610c31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b60008060006002811115610f2857fe5b846002811115610f3457fe5b1415610f4d57610f4687878786611015565b915061100b565b60016002811115610f5a57fe5b846002811115610f6657fe5b1415610f7e57610f7787868561102e565b915061100a565b610f8785611045565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820b03a2427075cac45bbdeb264b166fb8b827b7633a6c00d861f316e04ef37ba630029", - "sourceMap": "348:3685:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;348:3685:5;;;;;;;", - "deployedSourceMap": "348:3685:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2785:429:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:495;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:495:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;3293:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3293:738:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3293:738:5;;;;;;;;;;;;;;;;;1938:511;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:511:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429;2917:12;3025:1;3002:7;:19;3010:10;3002:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2994:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:46;3169:2;3173:5;3180:4;3186:9;3197;3161:7;:46::i;:::-;3151:56;;2785:429;;;;;;:::o;1182:495::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:5;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1649:21;1663:6;1649:21;;;;;;;;;;;;;;;;;;;;;;1182:495;:::o;488:55::-;539:3;488:55;:::o;3293:738::-;3360:9;3419:19;3452:21;3652:22;3441:1;3419:23;;3476:7;:25;539:3;3476:25;;;;;;;;;;;;;;;;;;;;;;;;;3452:49;;3511:132;539:3;3517:33;;:13;:33;;;;3511:132;;;3582:7;:22;3590:13;3582:22;;;;;;;;;;;;;;;;;;;;;;;;;3566:38;;3618:14;;;;;;;3511:132;;;3691:11;3677:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3677:26:5;;;;3652:51;;3761:1;3747:15;;3788:7;:25;539:3;3788:25;;;;;;;;;;;;;;;;;;;;;;;;;3772:41;;3823:180;539:3;3829:33;;:13;:33;;;;3823:180;;;3899:13;3878:5;3884:11;3878:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;3942:7;:22;3950:13;3942:22;;;;;;;;;;;;;;;;;;;;;;;;;3926:38;;3978:14;;;;;;;3823:180;;;4019:5;4012:12;;3293:738;;;;:::o;1938:511::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2152:1:5;2141:6;2133:20;;;;:59;;;;;539:3;2157:35;;2165:6;2157:35;;;;2133:59;2125:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2277:6;2246:38;;:7;:19;2254:10;2246:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2238:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2361:7;:15;2369:6;2361:15;;;;;;;;;;;;;;;;;;;;;;;;;2339:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2404:1;2386:7;:15;2394:6;2386:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2420:22;2435:6;2420:22;;;;;;;;;;;;;;;;;;;;;;1938:511;;:::o;313:548:3:-;444:12;715:19;489;476:32;;;;;;;;:9;:32;;;;;;;;;472:383;;;532:35;544:2;548:5;555:4;561:5;532:11;:35::i;:::-;522:45;;472:383;;;599:27;586:40;;;;;;;;:9;:40;;;;;;;;;582:273;;;650:36;670:2;674:4;680:5;650:19;:36::i;:::-;640:46;;582:273;;;737:19;751:4;737:13;:19::i;:::-;715:41;;795:1;780:11;:16;;;;770:26;;815:29;832:11;815:29;;;;;;;;;;;;;;;;;;;;;;582:273;472:383;313:548;;;;;;;;:::o;867:309::-;976:12;1158:1;1155;1148:4;1142:11;1135:4;1129;1125:15;1118:5;1114:2;1107:5;1102:58;1091:69;;1077:93;;;;;;:::o;1182:303::-;1284:12;1467:1;1464;1457:4;1451:11;1444:4;1438;1434:15;1430:2;1423:5;1410:59;1399:70;;1385:94;;;;;:::o;1491:261::-;1560:19;1730:4;1724:11;1717:4;1711;1707:15;1704:1;1697:39;1682:54;;1668:78;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"../common/Enum.sol\";\nimport \"../common/SelfAuthorized.sol\";\nimport \"./Executor.sol\";\nimport \"./Module.sol\";\n\n\n/// @title Module Manager - A contract that manages modules that can execute transactions via this contract\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract ModuleManager is SelfAuthorized, Executor {\n\n event EnabledModule(Module module);\n event DisabledModule(Module module);\n\n address public constant SENTINEL_MODULES = address(0x1);\n\n mapping (address => address) internal modules;\n \n function setupModules(address to, bytes data)\n internal\n {\n require(modules[SENTINEL_MODULES] == 0, \"Modules have already been initialized\");\n modules[SENTINEL_MODULES] = SENTINEL_MODULES;\n if (to != 0)\n // Setup has to complete successfully or transaction fails.\n require(executeDelegateCall(to, data, gasleft()), \"Could not finish initialization\");\n }\n\n /// @dev Allows to add a module to the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param module Module to be whitelisted.\n function enableModule(Module module)\n public\n authorized\n {\n // Module address cannot be null or sentinel.\n require(address(module) != 0 && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n // Module cannot be added twice.\n require(modules[module] == 0, \"Module has already been added\");\n modules[module] = modules[SENTINEL_MODULES];\n modules[SENTINEL_MODULES] = module;\n emit EnabledModule(module);\n }\n\n /// @dev Allows to remove a module from the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param prevModule Module that pointed to the module to be removed in the linked list\n /// @param module Module to be removed.\n function disableModule(Module prevModule, Module module)\n public\n authorized\n {\n // Validate module address and check that it corresponds to module index.\n require(address(module) != 0 && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n require(modules[prevModule] == address(module), \"Invalid prevModule, module pair provided\");\n modules[prevModule] = modules[module];\n modules[module] = 0;\n emit DisabledModule(module);\n }\n\n /// @dev Allows a Module to execute a Safe transaction without any further confirmations.\n /// @param to Destination address of module transaction.\n /// @param value Ether value of module transaction.\n /// @param data Data payload of module transaction.\n /// @param operation Operation type of module transaction.\n function execTransactionFromModule(address to, uint256 value, bytes data, Enum.Operation operation)\n public\n returns (bool success)\n {\n // Only whitelisted modules are allowed.\n require(modules[msg.sender] != 0, \"Method can only be called from an enabled module\");\n // Execute transaction without further confirmations.\n success = execute(to, value, data, operation, gasleft());\n }\n\n /// @dev Returns array of modules.\n /// @return Array of modules.\n function getModules()\n public\n view\n returns (address[])\n {\n // Calculate module count\n uint256 moduleCount = 0;\n address currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n address[] memory array = new address[](moduleCount);\n\n // populate return array\n moduleCount = 0;\n currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n array[moduleCount] = currentModule;\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n return array;\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "exportedSymbols": { - "ModuleManager": [ - 1212 - ] - }, - "id": 1213, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 937, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 938, - "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 1660, - "src": "24:28:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "file": "../common/SelfAuthorized.sol", - "id": 939, - "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 1736, - "src": "53:38:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", - "file": "./Executor.sol", - "id": 940, - "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 893, - "src": "92:24:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "./Module.sol", - "id": 941, - "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 936, - "src": "117:22:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 942, - "name": "SelfAuthorized", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1735, - "src": "374:14:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", - "typeString": "contract SelfAuthorized" - } - }, - "id": 943, - "nodeType": "InheritanceSpecifier", - "src": "374:14:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 944, - "name": "Executor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 892, - "src": "390:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Executor_$892", - "typeString": "contract Executor" - } - }, - "id": 945, - "nodeType": "InheritanceSpecifier", - "src": "390:8:5" - } - ], - "contractDependencies": [ - 892, - 1666, - 1735 - ], - "contractKind": "contract", - "documentation": "@title Module Manager - A contract that manages modules that can execute transactions via this contract\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1212, - "linearizedBaseContracts": [ - 1212, - 892, - 1666, - 1735 - ], - "name": "ModuleManager", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 949, - "name": "EnabledModule", - "nodeType": "EventDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 947, - "indexed": false, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 949, - "src": "426:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 946, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "426:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "425:15:5" - }, - "src": "406:35:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 953, - "name": "DisabledModule", - "nodeType": "EventDefinition", - "parameters": { - "id": 952, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 951, - "indexed": false, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 953, - "src": "467:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 950, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "467:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "466:15:5" - }, - "src": "446:36:5" - }, - { - "constant": true, - "id": 958, - "name": "SENTINEL_MODULES", - "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "488:55:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 954, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "488:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307831", - "id": 956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "539:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 955, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "531:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 957, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "531:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 962, - "name": "modules", - "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "550:45:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 961, - "keyType": { - "id": 959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "559:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "550:28:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 960, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "570:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 998, - "nodeType": "Block", - "src": "673:342:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 970, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "691:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 972, - "indexExpression": { - "argumentTypes": null, - "id": 971, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "699:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "691:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "720:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "691:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564", - "id": 975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "723:39:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", - "typeString": "literal_string \"Modules have already been initialized\"" - }, - "value": "Modules have already been initialized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", - "typeString": "literal_string \"Modules have already been initialized\"" - } - ], - "id": 969, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "683:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "683:80:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 977, - "nodeType": "ExpressionStatement", - "src": "683:80:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 978, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "773:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 980, - "indexExpression": { - "argumentTypes": null, - "id": 979, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "781:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "773:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 981, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "801:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "773:44:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 983, - "nodeType": "ExpressionStatement", - "src": "773:44:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 984, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "831:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 985, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "837:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "831:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 997, - "nodeType": "IfStatement", - "src": "827:181:5", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 989, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "952:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 990, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "956:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 991, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "962:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "962:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 988, - "name": "executeDelegateCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "932:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,bytes memory,uint256) returns (bool)" - } - }, - "id": 993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "932:40:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "974:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", - "typeString": "literal_string \"Could not finish initialization\"" - }, - "value": "Could not finish initialization" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", - "typeString": "literal_string \"Could not finish initialization\"" - } - ], - "id": 987, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "924:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "924:84:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 996, - "nodeType": "ExpressionStatement", - "src": "924:84:5" - } - } - ] - }, - "documentation": null, - "id": 999, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setupModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 964, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 999, - "src": "628:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 963, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "628:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 966, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 999, - "src": "640:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 965, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "640:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "627:24:5" - }, - "payable": false, - "returnParameters": { - "id": 968, - "nodeType": "ParameterList", - "parameters": [], - "src": "673:0:5" - }, - "scope": 1212, - "src": "606:409:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1048, - "nodeType": "Block", - "src": "1257:420:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1008, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1337:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1007, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1329:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1329:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1010, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1348:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1329:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1013, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1361:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1353:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1353:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1015, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "1372:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1353:35:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1329:59:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1390:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - }, - "value": "Invalid module address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - } - ], - "id": 1006, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1321:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1321:103:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "1321:103:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1022, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1483:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1024, - "indexExpression": { - "argumentTypes": null, - "id": 1023, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1491:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1483:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1025, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1502:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1483:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6f64756c652068617320616c7265616479206265656e206164646564", - "id": 1027, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1505:31:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", - "typeString": "literal_string \"Module has already been added\"" - }, - "value": "Module has already been added" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", - "typeString": "literal_string \"Module has already been added\"" - } - ], - "id": 1021, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1475:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1475:62:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1029, - "nodeType": "ExpressionStatement", - "src": "1475:62:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1030, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1547:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1032, - "indexExpression": { - "argumentTypes": null, - "id": 1031, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1555:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1547:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1033, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1565:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1035, - "indexExpression": { - "argumentTypes": null, - "id": 1034, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "1573:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1565:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1547:43:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1037, - "nodeType": "ExpressionStatement", - "src": "1547:43:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1038, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1600:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1040, - "indexExpression": { - "argumentTypes": null, - "id": 1039, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "1608:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1600:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1041, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1628:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "src": "1600:34:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1043, - "nodeType": "ExpressionStatement", - "src": "1600:34:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1045, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1663:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1044, - "name": "EnabledModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "1649:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$", - "typeString": "function (contract Module)" - } - }, - "id": 1046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1649:21:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1047, - "nodeType": "EmitStatement", - "src": "1644:26:5" - } - ] - }, - "documentation": "@dev Allows to add a module to the whitelist.\n This can only be done via a Safe transaction.\n @param module Module to be whitelisted.", - "id": 1049, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1004, - "modifierName": { - "argumentTypes": null, - "id": 1003, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "1242:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1242:10:5" - } - ], - "name": "enableModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1001, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1049, - "src": "1204:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1000, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "1204:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1203:15:5" - }, - "payable": false, - "returnParameters": { - "id": 1005, - "nodeType": "ParameterList", - "parameters": [], - "src": "1257:0:5" - }, - "scope": 1212, - "src": "1182:495:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1102, - "nodeType": "Block", - "src": "2033:416:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1060, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2141:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2133:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2133:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2152:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2133:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1065, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2165:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1064, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2157:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2157:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1067, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "2176:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2157:35:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2133:59:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1070, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2194:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - }, - "value": "Invalid module address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - } - ], - "id": 1058, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2125:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2125:103:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1072, - "nodeType": "ExpressionStatement", - "src": "2125:103:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1074, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2246:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1076, - "indexExpression": { - "argumentTypes": null, - "id": 1075, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "2254:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2246:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1078, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2277:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2269:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2269:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2246:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564", - "id": 1081, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2286:42:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", - "typeString": "literal_string \"Invalid prevModule, module pair provided\"" - }, - "value": "Invalid prevModule, module pair provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", - "typeString": "literal_string \"Invalid prevModule, module pair provided\"" - } - ], - "id": 1073, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2238:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2238:91:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "2238:91:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1084, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2339:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1086, - "indexExpression": { - "argumentTypes": null, - "id": 1085, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "2347:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2339:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1087, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2361:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1089, - "indexExpression": { - "argumentTypes": null, - "id": 1088, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2369:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2361:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2339:37:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1091, - "nodeType": "ExpressionStatement", - "src": "2339:37:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1092, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2386:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1094, - "indexExpression": { - "argumentTypes": null, - "id": 1093, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2394:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2386:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2404:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2386:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1097, - "nodeType": "ExpressionStatement", - "src": "2386:19:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1099, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2435:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1098, - "name": "DisabledModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "2420:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$", - "typeString": "function (contract Module)" - } - }, - "id": 1100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2420:22:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1101, - "nodeType": "EmitStatement", - "src": "2415:27:5" - } - ] - }, - "documentation": "@dev Allows to remove a module from the whitelist.\n This can only be done via a Safe transaction.\n @param prevModule Module that pointed to the module to be removed in the linked list\n @param module Module to be removed.", - "id": 1103, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1056, - "modifierName": { - "argumentTypes": null, - "id": 1055, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "2018:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2018:10:5" - } - ], - "name": "disableModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1054, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1051, - "name": "prevModule", - "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "1961:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1050, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "1961:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1053, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "1980:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1052, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "1980:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1960:34:5" - }, - "payable": false, - "returnParameters": { - "id": 1057, - "nodeType": "ParameterList", - "parameters": [], - "src": "2033:0:5" - }, - "scope": 1212, - "src": "1938:511:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1137, - "nodeType": "Block", - "src": "2935:279:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1117, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3002:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1120, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1118, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "3010:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3010:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3002:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3025:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3002:24:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65", - "id": 1123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3028:50:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", - "typeString": "literal_string \"Method can only be called from an enabled module\"" - }, - "value": "Method can only be called from an enabled module" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", - "typeString": "literal_string \"Method can only be called from an enabled module\"" - } - ], - "id": 1116, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2994:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2994:85:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1125, - "nodeType": "ExpressionStatement", - "src": "2994:85:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1126, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1114, - "src": "3151:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1128, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1105, - "src": "3169:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1129, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "3173:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1130, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "3180:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 1131, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "3186:9:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1132, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "3197:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3197:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1127, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "3161:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 1134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3161:46:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3151:56:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1136, - "nodeType": "ExpressionStatement", - "src": "3151:56:5" - } - ] - }, - "documentation": "@dev Allows a Module to execute a Safe transaction without any further confirmations.\n @param to Destination address of module transaction.\n @param value Ether value of module transaction.\n @param data Data payload of module transaction.\n @param operation Operation type of module transaction.", - "id": 1138, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execTransactionFromModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1105, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2820:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2820:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1107, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2832:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1106, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2832:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1109, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2847:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1108, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2847:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1111, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2859:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 1110, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "2859:14:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2819:65:5" - }, - "payable": false, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1114, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2917:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1113, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2917:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2916:14:5" - }, - "scope": 1212, - "src": "2785:429:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1210, - "nodeType": "Block", - "src": "3375:656:5", - "statements": [ - { - "assignments": [ - 1145 - ], - "declarations": [ - { - "constant": false, - "id": 1145, - "name": "moduleCount", - "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3419:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1144, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3419:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1147, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3441:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3419:23:5" - }, - { - "assignments": [ - 1149 - ], - "declarations": [ - { - "constant": false, - "id": 1149, - "name": "currentModule", - "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3452:21:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1148, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3452:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1153, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1150, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3476:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1152, - "indexExpression": { - "argumentTypes": null, - "id": 1151, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3484:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3476:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3452:49:5" - }, - { - "body": { - "id": 1166, - "nodeType": "Block", - "src": "3552:91:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1157, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3566:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1158, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3582:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1160, - "indexExpression": { - "argumentTypes": null, - "id": 1159, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3590:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3582:22:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3566:38:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1162, - "nodeType": "ExpressionStatement", - "src": "3566:38:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3618:14:5", - "subExpression": { - "argumentTypes": null, - "id": 1163, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3618:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1165, - "nodeType": "ExpressionStatement", - "src": "3618:14:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1154, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3517:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1155, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3534:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3517:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1167, - "nodeType": "WhileStatement", - "src": "3511:132:5" - }, - { - "assignments": [ - 1171 - ], - "declarations": [ - { - "constant": false, - "id": 1171, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3652:22:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3652:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1170, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3652:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1177, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1175, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3691:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "3677:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 1172, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3681:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1173, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3681:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 1176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3677:26:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3652:51:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1178, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3747:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3761:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3747:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1181, - "nodeType": "ExpressionStatement", - "src": "3747:15:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1182, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3772:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1183, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3788:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1185, - "indexExpression": { - "argumentTypes": null, - "id": 1184, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3796:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3788:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3772:41:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "3772:41:5" - }, - { - "body": { - "id": 1206, - "nodeType": "Block", - "src": "3864:139:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1191, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "3878:5:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1193, - "indexExpression": { - "argumentTypes": null, - "id": 1192, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3884:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3878:18:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1194, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3899:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3878:34:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1196, - "nodeType": "ExpressionStatement", - "src": "3878:34:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1197, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3926:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1198, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3942:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1200, - "indexExpression": { - "argumentTypes": null, - "id": 1199, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3950:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3942:22:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3926:38:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1202, - "nodeType": "ExpressionStatement", - "src": "3926:38:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3978:14:5", - "subExpression": { - "argumentTypes": null, - "id": 1203, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3978:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1205, - "nodeType": "ExpressionStatement", - "src": "3978:14:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1188, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3829:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1189, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3846:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3829:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1207, - "nodeType": "WhileStatement", - "src": "3823:180:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1208, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "4019:5:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1143, - "id": 1209, - "nodeType": "Return", - "src": "4012:12:5" - } - ] - }, - "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 1211, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1139, - "nodeType": "ParameterList", - "parameters": [], - "src": "3312:2:5" - }, - "payable": false, - "returnParameters": { - "id": 1143, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1142, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3360:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3360:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1141, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3360:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3359:11:5" - }, - "scope": 1212, - "src": "3293:738:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1213, - "src": "348:3685:5" - } - ], - "src": "0:4034:5" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "exportedSymbols": { - "ModuleManager": [ - 1212 - ] - }, - "id": 1213, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 937, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 938, - "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 1660, - "src": "24:28:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "file": "../common/SelfAuthorized.sol", - "id": 939, - "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 1736, - "src": "53:38:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Executor.sol", - "file": "./Executor.sol", - "id": 940, - "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 893, - "src": "92:24:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "./Module.sol", - "id": 941, - "nodeType": "ImportDirective", - "scope": 1213, - "sourceUnit": 936, - "src": "117:22:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 942, - "name": "SelfAuthorized", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1735, - "src": "374:14:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", - "typeString": "contract SelfAuthorized" - } - }, - "id": 943, - "nodeType": "InheritanceSpecifier", - "src": "374:14:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 944, - "name": "Executor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 892, - "src": "390:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Executor_$892", - "typeString": "contract Executor" - } - }, - "id": 945, - "nodeType": "InheritanceSpecifier", - "src": "390:8:5" - } - ], - "contractDependencies": [ - 892, - 1666, - 1735 - ], - "contractKind": "contract", - "documentation": "@title Module Manager - A contract that manages modules that can execute transactions via this contract\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1212, - "linearizedBaseContracts": [ - 1212, - 892, - 1666, - 1735 - ], - "name": "ModuleManager", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 949, - "name": "EnabledModule", - "nodeType": "EventDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 947, - "indexed": false, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 949, - "src": "426:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 946, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "426:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "425:15:5" - }, - "src": "406:35:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 953, - "name": "DisabledModule", - "nodeType": "EventDefinition", - "parameters": { - "id": 952, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 951, - "indexed": false, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 953, - "src": "467:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 950, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "467:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "466:15:5" - }, - "src": "446:36:5" - }, - { - "constant": true, - "id": 958, - "name": "SENTINEL_MODULES", - "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "488:55:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 954, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "488:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307831", - "id": 956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "539:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 955, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "531:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 957, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "531:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 962, - "name": "modules", - "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "550:45:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 961, - "keyType": { - "id": 959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "559:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "550:28:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 960, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "570:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 998, - "nodeType": "Block", - "src": "673:342:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 970, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "691:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 972, - "indexExpression": { - "argumentTypes": null, - "id": 971, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "699:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "691:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "720:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "691:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564", - "id": 975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "723:39:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", - "typeString": "literal_string \"Modules have already been initialized\"" - }, - "value": "Modules have already been initialized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", - "typeString": "literal_string \"Modules have already been initialized\"" - } - ], - "id": 969, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "683:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "683:80:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 977, - "nodeType": "ExpressionStatement", - "src": "683:80:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 978, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "773:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 980, - "indexExpression": { - "argumentTypes": null, - "id": 979, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "781:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "773:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 981, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "801:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "773:44:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 983, - "nodeType": "ExpressionStatement", - "src": "773:44:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 984, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "831:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 985, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "837:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "831:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 997, - "nodeType": "IfStatement", - "src": "827:181:5", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 989, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "952:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 990, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "956:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 991, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "962:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "962:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 988, - "name": "executeDelegateCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "932:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,bytes memory,uint256) returns (bool)" - } - }, - "id": 993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "932:40:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "974:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", - "typeString": "literal_string \"Could not finish initialization\"" - }, - "value": "Could not finish initialization" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", - "typeString": "literal_string \"Could not finish initialization\"" - } - ], - "id": 987, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "924:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "924:84:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 996, - "nodeType": "ExpressionStatement", - "src": "924:84:5" - } - } - ] - }, - "documentation": null, - "id": 999, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setupModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 964, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 999, - "src": "628:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 963, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "628:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 966, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 999, - "src": "640:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 965, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "640:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "627:24:5" - }, - "payable": false, - "returnParameters": { - "id": 968, - "nodeType": "ParameterList", - "parameters": [], - "src": "673:0:5" - }, - "scope": 1212, - "src": "606:409:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1048, - "nodeType": "Block", - "src": "1257:420:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1008, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1337:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1007, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1329:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1329:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1010, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1348:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1329:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1013, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1361:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1353:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1353:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1015, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "1372:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1353:35:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1329:59:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1390:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - }, - "value": "Invalid module address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - } - ], - "id": 1006, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1321:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1321:103:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "1321:103:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1022, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1483:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1024, - "indexExpression": { - "argumentTypes": null, - "id": 1023, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1491:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1483:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1025, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1502:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1483:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6f64756c652068617320616c7265616479206265656e206164646564", - "id": 1027, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1505:31:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", - "typeString": "literal_string \"Module has already been added\"" - }, - "value": "Module has already been added" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", - "typeString": "literal_string \"Module has already been added\"" - } - ], - "id": 1021, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1475:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1475:62:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1029, - "nodeType": "ExpressionStatement", - "src": "1475:62:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1030, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1547:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1032, - "indexExpression": { - "argumentTypes": null, - "id": 1031, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1555:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1547:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1033, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1565:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1035, - "indexExpression": { - "argumentTypes": null, - "id": 1034, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "1573:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1565:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1547:43:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1037, - "nodeType": "ExpressionStatement", - "src": "1547:43:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1038, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "1600:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1040, - "indexExpression": { - "argumentTypes": null, - "id": 1039, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "1608:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1600:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1041, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1628:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "src": "1600:34:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1043, - "nodeType": "ExpressionStatement", - "src": "1600:34:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1045, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1663:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1044, - "name": "EnabledModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "1649:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$", - "typeString": "function (contract Module)" - } - }, - "id": 1046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1649:21:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1047, - "nodeType": "EmitStatement", - "src": "1644:26:5" - } - ] - }, - "documentation": "@dev Allows to add a module to the whitelist.\n This can only be done via a Safe transaction.\n @param module Module to be whitelisted.", - "id": 1049, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1004, - "modifierName": { - "argumentTypes": null, - "id": 1003, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "1242:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1242:10:5" - } - ], - "name": "enableModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1001, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1049, - "src": "1204:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1000, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "1204:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1203:15:5" - }, - "payable": false, - "returnParameters": { - "id": 1005, - "nodeType": "ParameterList", - "parameters": [], - "src": "1257:0:5" - }, - "scope": 1212, - "src": "1182:495:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1102, - "nodeType": "Block", - "src": "2033:416:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1060, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2141:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2133:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2133:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2152:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2133:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1065, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2165:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1064, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2157:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2157:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1067, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "2176:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2157:35:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2133:59:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1070, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2194:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - }, - "value": "Invalid module address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - } - ], - "id": 1058, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2125:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2125:103:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1072, - "nodeType": "ExpressionStatement", - "src": "2125:103:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1074, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2246:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1076, - "indexExpression": { - "argumentTypes": null, - "id": 1075, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "2254:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2246:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1078, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2277:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2269:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2269:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2246:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564", - "id": 1081, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2286:42:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", - "typeString": "literal_string \"Invalid prevModule, module pair provided\"" - }, - "value": "Invalid prevModule, module pair provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", - "typeString": "literal_string \"Invalid prevModule, module pair provided\"" - } - ], - "id": 1073, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2238:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2238:91:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "2238:91:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1084, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2339:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1086, - "indexExpression": { - "argumentTypes": null, - "id": 1085, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "2347:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2339:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1087, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2361:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1089, - "indexExpression": { - "argumentTypes": null, - "id": 1088, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2369:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2361:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2339:37:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1091, - "nodeType": "ExpressionStatement", - "src": "2339:37:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1092, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "2386:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1094, - "indexExpression": { - "argumentTypes": null, - "id": 1093, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2394:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2386:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2404:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2386:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1097, - "nodeType": "ExpressionStatement", - "src": "2386:19:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1099, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1053, - "src": "2435:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - ], - "id": 1098, - "name": "DisabledModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "2420:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$935_$returns$__$", - "typeString": "function (contract Module)" - } - }, - "id": 1100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2420:22:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1101, - "nodeType": "EmitStatement", - "src": "2415:27:5" - } - ] - }, - "documentation": "@dev Allows to remove a module from the whitelist.\n This can only be done via a Safe transaction.\n @param prevModule Module that pointed to the module to be removed in the linked list\n @param module Module to be removed.", - "id": 1103, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1056, - "modifierName": { - "argumentTypes": null, - "id": 1055, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "2018:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2018:10:5" - } - ], - "name": "disableModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1054, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1051, - "name": "prevModule", - "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "1961:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1050, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "1961:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1053, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "1980:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1052, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "1980:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1960:34:5" - }, - "payable": false, - "returnParameters": { - "id": 1057, - "nodeType": "ParameterList", - "parameters": [], - "src": "2033:0:5" - }, - "scope": 1212, - "src": "1938:511:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1137, - "nodeType": "Block", - "src": "2935:279:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1117, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3002:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1120, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1118, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "3010:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3010:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3002:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3025:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3002:24:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65", - "id": 1123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3028:50:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", - "typeString": "literal_string \"Method can only be called from an enabled module\"" - }, - "value": "Method can only be called from an enabled module" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", - "typeString": "literal_string \"Method can only be called from an enabled module\"" - } - ], - "id": 1116, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2994:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2994:85:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1125, - "nodeType": "ExpressionStatement", - "src": "2994:85:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1126, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1114, - "src": "3151:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1128, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1105, - "src": "3169:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1129, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "3173:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1130, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1109, - "src": "3180:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 1131, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "3186:9:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1132, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4008, - "src": "3197:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3197:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1127, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "3161:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 1134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3161:46:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3151:56:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1136, - "nodeType": "ExpressionStatement", - "src": "3151:56:5" - } - ] - }, - "documentation": "@dev Allows a Module to execute a Safe transaction without any further confirmations.\n @param to Destination address of module transaction.\n @param value Ether value of module transaction.\n @param data Data payload of module transaction.\n @param operation Operation type of module transaction.", - "id": 1138, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execTransactionFromModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1105, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2820:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2820:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1107, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2832:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1106, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2832:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1109, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2847:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1108, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2847:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1111, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2859:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 1110, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "2859:14:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2819:65:5" - }, - "payable": false, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1114, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "2917:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1113, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2917:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2916:14:5" - }, - "scope": 1212, - "src": "2785:429:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1210, - "nodeType": "Block", - "src": "3375:656:5", - "statements": [ - { - "assignments": [ - 1145 - ], - "declarations": [ - { - "constant": false, - "id": 1145, - "name": "moduleCount", - "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3419:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1144, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3419:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1147, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3441:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3419:23:5" - }, - { - "assignments": [ - 1149 - ], - "declarations": [ - { - "constant": false, - "id": 1149, - "name": "currentModule", - "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3452:21:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1148, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3452:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1153, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1150, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3476:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1152, - "indexExpression": { - "argumentTypes": null, - "id": 1151, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3484:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3476:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3452:49:5" - }, - { - "body": { - "id": 1166, - "nodeType": "Block", - "src": "3552:91:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1157, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3566:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1158, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3582:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1160, - "indexExpression": { - "argumentTypes": null, - "id": 1159, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3590:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3582:22:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3566:38:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1162, - "nodeType": "ExpressionStatement", - "src": "3566:38:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3618:14:5", - "subExpression": { - "argumentTypes": null, - "id": 1163, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3618:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1165, - "nodeType": "ExpressionStatement", - "src": "3618:14:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1154, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3517:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1155, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3534:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3517:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1167, - "nodeType": "WhileStatement", - "src": "3511:132:5" - }, - { - "assignments": [ - 1171 - ], - "declarations": [ - { - "constant": false, - "id": 1171, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3652:22:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3652:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1170, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3652:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1177, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1175, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3691:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "3677:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 1172, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3681:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1173, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3681:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 1176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3677:26:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3652:51:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1178, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3747:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3761:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3747:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1181, - "nodeType": "ExpressionStatement", - "src": "3747:15:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1182, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3772:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1183, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3788:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1185, - "indexExpression": { - "argumentTypes": null, - "id": 1184, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3796:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3788:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3772:41:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "3772:41:5" - }, - { - "body": { - "id": 1206, - "nodeType": "Block", - "src": "3864:139:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1191, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "3878:5:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1193, - "indexExpression": { - "argumentTypes": null, - "id": 1192, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3884:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3878:18:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1194, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3899:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3878:34:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1196, - "nodeType": "ExpressionStatement", - "src": "3878:34:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1197, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3926:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1198, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3942:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1200, - "indexExpression": { - "argumentTypes": null, - "id": 1199, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3950:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3942:22:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3926:38:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1202, - "nodeType": "ExpressionStatement", - "src": "3926:38:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3978:14:5", - "subExpression": { - "argumentTypes": null, - "id": 1203, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "3978:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1205, - "nodeType": "ExpressionStatement", - "src": "3978:14:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1188, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1149, - "src": "3829:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1189, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "3846:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3829:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1207, - "nodeType": "WhileStatement", - "src": "3823:180:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1208, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "4019:5:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1143, - "id": 1209, - "nodeType": "Return", - "src": "4012:12:5" - } - ] - }, - "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 1211, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1139, - "nodeType": "ParameterList", - "parameters": [], - "src": "3312:2:5" - }, - "payable": false, - "returnParameters": { - "id": 1143, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1142, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "3360:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3360:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1141, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3360:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3359:11:5" - }, - "scope": 1212, - "src": "3293:738:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1213, - "src": "348:3685:5" - } - ], - "src": "0:4034:5" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.913Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/MultiSend.json b/safe-contracts/build/contracts/MultiSend.json deleted file mode 100644 index 5f94f7fe..00000000 --- a/safe-contracts/build/contracts/MultiSend.json +++ /dev/null @@ -1,373 +0,0 @@ -{ - "contractName": "MultiSend", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "transactions", - "type": "bytes" - } - ], - "name": "multiSend", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610169806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638d80ff0a14610046575b600080fd5b34801561005257600080fd5b506100ad600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506100af565b005b805160205b81811015610138578083015160208201840151604083018501516080840186015160a085018701600085600081146100f357600181146101035761010e565b6000808585888a5af1915061010e565b6000808585895af491505b50600081141561011d57600080fd5b602080601f8501040260a001870196505050505050506100b4565b5050505600a165627a7a72305820c1abf4988401674d6d6a5ceca56de123817c61305360ceffe26ebab59a828b7d0029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638d80ff0a14610046575b600080fd5b34801561005257600080fd5b506100ad600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506100af565b005b805160205b81811015610138578083015160208201840151604083018501516080840186015160a085018701600085600081146100f357600181146101035761010e565b6000808585888a5af1915061010e565b6000808585895af491505b50600081141561011d57600080fd5b602080601f8501040260a001870196505050505050506100b4565b5050505600a165627a7a72305820c1abf4988401674d6d6a5ceca56de123817c61305360ceffe26ebab59a828b7d0029", - "sourceMap": "253:1424:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;253:1424:15;;;;;;;", - "deployedSourceMap": "253:1424:15:-;;;;;;;;;;;;;;;;;;;;;;;;695:980;;8:9:-1;5:2;;;30:1;27;20:12;5:2;695:980:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;870:12;864:19;905:4;922:737;936:6;933:1;930:13;922:737;;;1007:1;993:12;989:20;983:27;1068:4;1065:1;1061:12;1047;1043:31;1037:38;1136:4;1133:1;1129:12;1115;1111:31;1105:38;1209:4;1206:1;1202:12;1188;1184:31;1178:38;1270:4;1267:1;1263:12;1249;1245:31;1308:1;1333:9;1365:1;1360:66;;;;1448:1;1443:67;;;;1326:184;;1360:66;1422:1;1419;1407:10;1401:4;1394:5;1390:2;1385:3;1380:44;1369:55;;1360:66;;1443:67;1506:1;1503;1491:10;1485:4;1481:2;1476:3;1463:45;1452:56;;1326:184;;1542:1;1533:7;1530:14;1527:2;;;1557:1;1554;1547:12;1527:2;1638:4;1631;1624;1612:10;1608:21;1604:32;1600:43;1594:4;1590:54;1587:1;1583:62;1578:67;;948:711;;;;;;922:737;;;836:833;;;:::o", - "source": "pragma solidity 0.4.24;\n\n\n/// @title Multi Send - Allows to batch multiple transactions into one.\n/// @author Nick Dodson - \n/// @author Gonçalo Sá - \n/// @author Stefan George - \ncontract MultiSend {\n\n /// @dev Sends multiple transactions and reverts all if one fails.\n /// @param transactions Encoded transactions. Each transaction is encoded as a \n /// tuple(operation,address,uint256,bytes), where operation \n /// can be 0 for a call or 1 for a delegatecall. The bytes \n /// of all encoded transactions are concatenated to form the input.\n function multiSend(bytes transactions)\n public\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let length := mload(transactions)\n let i := 0x20\n for { } lt(i, length) { } {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation \n case 0 { success := call(gas, to, value, data, dataLength, 0, 0) }\n case 1 { success := delegatecall(gas, to, data, dataLength, 0, 0) }\n if eq(success, 0) { revert(0, 0) }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n }\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", - "exportedSymbols": { - "MultiSend": [ - 1858 - ] - }, - "id": 1859, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1850, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:15" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Multi Send - Allows to batch multiple transactions into one.\n @author Nick Dodson - \n @author Gonçalo Sá - \n @author Stefan George - ", - "fullyImplemented": true, - "id": 1858, - "linearizedBaseContracts": [ - 1858 - ], - "name": "MultiSend", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1856, - "nodeType": "Block", - "src": "753:922:15", - "statements": [ - { - "externalReferences": [ - { - "transactions": { - "declaration": 1852, - "isOffset": false, - "isSlot": false, - "src": "870:12:15", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 1852, - "isOffset": false, - "isSlot": false, - "src": "993:12:15", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 1852, - "isOffset": false, - "isSlot": false, - "src": "1047:12:15", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 1852, - "isOffset": false, - "isSlot": false, - "src": "1188:12:15", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 1852, - "isOffset": false, - "isSlot": false, - "src": "1115:12:15", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 1852, - "isOffset": false, - "isSlot": false, - "src": "1249:12:15", - "valueSize": 1 - } - } - ], - "id": 1855, - "nodeType": "InlineAssembly", - "operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation\n case 0 {\n success := call(gas(), to, value, data, dataLength, 0, 0)\n }\n case 1 {\n success := delegatecall(gas(), to, data, dataLength, 0, 0)\n }\n if eq(success, 0)\n {\n revert(0, 0)\n }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n}", - "src": "827:848:15" - } - ] - }, - "documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions. Each transaction is encoded as a \n tuple(operation,address,uint256,bytes), where operation \n can be 0 for a call or 1 for a delegatecall. The bytes \n of all encoded transactions are concatenated to form the input.", - "id": 1857, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "multiSend", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1852, - "name": "transactions", - "nodeType": "VariableDeclaration", - "scope": 1857, - "src": "714:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1851, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "714:5:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "713:20:15" - }, - "payable": false, - "returnParameters": { - "id": 1854, - "nodeType": "ParameterList", - "parameters": [], - "src": "753:0:15" - }, - "scope": 1858, - "src": "695:980:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1859, - "src": "253:1424:15" - } - ], - "src": "0:1678:15" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", - "exportedSymbols": { - "MultiSend": [ - 1858 - ] - }, - "id": 1859, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1850, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:15" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Multi Send - Allows to batch multiple transactions into one.\n @author Nick Dodson - \n @author Gonçalo Sá - \n @author Stefan George - ", - "fullyImplemented": true, - "id": 1858, - "linearizedBaseContracts": [ - 1858 - ], - "name": "MultiSend", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1856, - "nodeType": "Block", - "src": "753:922:15", - "statements": [ - { - "externalReferences": [ - { - "transactions": { - "declaration": 1852, - "isOffset": false, - "isSlot": false, - "src": "870:12:15", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 1852, - "isOffset": false, - "isSlot": false, - "src": "993:12:15", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 1852, - "isOffset": false, - "isSlot": false, - "src": "1047:12:15", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 1852, - "isOffset": false, - "isSlot": false, - "src": "1188:12:15", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 1852, - "isOffset": false, - "isSlot": false, - "src": "1115:12:15", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 1852, - "isOffset": false, - "isSlot": false, - "src": "1249:12:15", - "valueSize": 1 - } - } - ], - "id": 1855, - "nodeType": "InlineAssembly", - "operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation\n case 0 {\n success := call(gas(), to, value, data, dataLength, 0, 0)\n }\n case 1 {\n success := delegatecall(gas(), to, data, dataLength, 0, 0)\n }\n if eq(success, 0)\n {\n revert(0, 0)\n }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n}", - "src": "827:848:15" - } - ] - }, - "documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions. Each transaction is encoded as a \n tuple(operation,address,uint256,bytes), where operation \n can be 0 for a call or 1 for a delegatecall. The bytes \n of all encoded transactions are concatenated to form the input.", - "id": 1857, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "multiSend", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1852, - "name": "transactions", - "nodeType": "VariableDeclaration", - "scope": 1857, - "src": "714:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1851, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "714:5:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "713:20:15" - }, - "payable": false, - "returnParameters": { - "id": 1854, - "nodeType": "ParameterList", - "parameters": [], - "src": "753:0:15" - }, - "scope": 1858, - "src": "695:980:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1859, - "src": "253:1424:15" - } - ], - "src": "0:1678:15" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x6f6f431429fb15bb2ca4bb55bf353c15f044df9e", - "transactionHash": "0xeaf5db265940b81d6fe881ebf0b05aa9dde905851a966a9cda08dcabd7dc10bd" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0x26b4afb60d6c903165150c6f0aa14f8016be4aec", - "transactionHash": "0x4a85e63a3968cc7f7aaa5303f6ed331cf782929fc758645b44145286ad4076a6" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.420Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/OwnerManager.json b/safe-contracts/build/contracts/OwnerManager.json deleted file mode 100644 index e9706005..00000000 --- a/safe-contracts/build/contracts/OwnerManager.json +++ /dev/null @@ -1,11953 +0,0 @@ -{ - "contractName": "OwnerManager", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "SENTINEL_OWNERS", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - } - ], - "name": "AddedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - } - ], - "name": "RemovedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "threshold", - "type": "uint256" - } - ], - "name": "ChangedThreshold", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "oldOwner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" - } - ], - "name": "swapOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getThreshold", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061189b806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100935780632f54bf6e146100e0578063694e80c31461013b5780638cff635514610168578063a0e67e2b146101bf578063e318b52b1461022b578063e75235b8146102ae578063f8dc5dd9146102d9575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610346565b005b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107ab565b604051808215151515815260200191505060405180910390f35b34801561014757600080fd5b506101666004803603810190808035906020019092919050505061082c565b005b34801561017457600080fd5b5061017d610a77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610a7c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102175780820151818401526020810190506101fc565b505050509050019250505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c15565b005b3480156102ba57600080fd5b506102c3611322565b6040518082815260200191505060405180910390f35b3480156102e557600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061132c565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156104635750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156104d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156105c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806002541415156107a7576107a68161082c565b5b5050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001548111151515610995576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515610a34576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806002819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936002546040518082815260200191505060405180910390a150565b600181565b606080600080600154604051908082528060200260200182016040528015610ab35781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610c0c57808383815181101515610b6257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610b1d565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610d325750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610da6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610ee65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610f5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611081576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600254905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600180540310151515611497576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156114eb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561155f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611686576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060025414151561186a576118698161082c565b5b5050505600a165627a7a7230582056666623352a47e52d4cc29303aac8f94641a1fd47d42f3cb2f598ede93ce0b00029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100935780632f54bf6e146100e0578063694e80c31461013b5780638cff635514610168578063a0e67e2b146101bf578063e318b52b1461022b578063e75235b8146102ae578063f8dc5dd9146102d9575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610346565b005b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107ab565b604051808215151515815260200191505060405180910390f35b34801561014757600080fd5b506101666004803603810190808035906020019092919050505061082c565b005b34801561017457600080fd5b5061017d610a77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cb57600080fd5b506101d4610a7c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102175780820151818401526020810190506101fc565b505050509050019250505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c15565b005b3480156102ba57600080fd5b506102c3611322565b6040518082815260200191505060405180910390f35b3480156102e557600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061132c565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156104635750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156104d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156105c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1806002541415156107a7576107a68161082c565b5b5050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001548111151515610995576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515610a34576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806002819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936002546040518082815260200191505060405180910390a150565b600181565b606080600080600154604051908082528060200260200182016040528015610ab35781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610c0c57808383815181101515610b6257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610b1d565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610d325750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610da6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610ee65750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610f5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611081576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600254905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600180540310151515611497576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156114eb5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561155f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611686576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060025414151561186a576118698161082c565b5b5050505600a165627a7a7230582056666623352a47e52d4cc29303aac8f94641a1fd47d42f3cb2f598ede93ce0b00029", - "sourceMap": "248:6348:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:6348:6;;;;;;;", - "deployedSourceMap": "248:6348:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2225:627:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5925:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5925:129:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:441;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5357:441:6;;;;;;;;;;;;;;;;;;;;;;;;;;419:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;6136:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6136:458:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6136:458:6;;;;;;;;;;;;;;;;;4345:823;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4345:823:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5804:115:6;;;;;;;;;;;;;;;;;;;;;;;3194:817;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3194:817:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:1:6;2388:5;:10;;;;:38;;;;;469:3;2402:24;;:5;:24;;;;2388:38;2380:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:1;2519:6;:13;2526:5;2519:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2511:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2595:6;:23;469:3;2595:23;;;;;;;;;;;;;;;;;;;;;;;;;2579:6;:13;2586:5;2579:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2654:5;2628:6;:23;469:3;2628:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2669:10;;:12;;;;;;;;;;;;;2696:17;2707:5;2696:17;;;;;;;;;;;;;;;;;;;;;;2794:10;2781:9;;:23;;2777:68;;;2818:27;2834:10;2818:15;:27::i;:::-;2777:68;2225:627;;:::o;5925:129::-;6002:4;6046:1;6029:6;:13;6036:5;6029:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;6022:25;;5925:129;;;:::o;5357:441::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:10:6;;5527;:24;;5519:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5675:1;5661:10;:15;;5653:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:10;5727:9;:22;;;;5764:27;5781:9;;5764:27;;;;;;;;;;;;;;;;;;5357:441;:::o;419:54::-;469:3;419:54;:::o;6136:458::-;6202:9;6227:22;6321:13;6348:20;6266:10;;6252:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6252:25:6;;;;6227:50;;6337:1;6321:17;;6371:6;:23;469:3;6371:23;;;;;;;;;;;;;;;;;;;;;;;;;6348:46;;6404:162;469:3;6410:31;;:12;:31;;;;6404:162;;;6472:12;6457:5;6463;6457:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6513:6;:20;6520:12;6513:20;;;;;;;;;;;;;;;;;;;;;;;;;6498:35;;6547:8;;;;;;;6404:162;;;6582:5;6575:12;;6136:458;;;;:::o;4345:823::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4528:1:6;4516:8;:13;;;;:44;;;;;469:3;4533:27;;:8;:27;;;;4516:44;4508:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4673:1;4653:6;:16;4660:8;4653:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4645:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4819:1;4807:8;:13;;;;:44;;;;;469:3;4824:27;;:8;:27;;;;4807:44;4799:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4925:8;4904:29;;:6;:17;4911:9;4904:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4896:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5005:6;:16;5012:8;5005:16;;;;;;;;;;;;;;;;;;;;;;;;;4986:6;:16;4993:8;4986:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5051:8;5031:6;:17;5038:9;5031:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5088:1;5069:6;:16;5076:8;5069:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;5104:22;5117:8;5104:22;;;;;;;;;;;;;;;;;;;;;;5141:20;5152:8;5141:20;;;;;;;;;;;;;;;;;;;;;;4345:823;;;:::o;5804:115::-;5873:7;5903:9;;5896:16;;5804:115;:::o;3194:817::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:10:6;3415:1;3402:10;;:14;:28;;3394:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3595:1;3586:5;:10;;;;:38;;;;;469:3;3600:24;;:5;:24;;;;3586:38;3578:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3698:5;3677:26;;:6;:17;3684:9;3677:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3776:6;:13;3783:5;3776:13;;;;;;;;;;;;;;;;;;;;;;;;;3756:6;:17;3763:9;3756:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3815:1;3799:6;:13;3806:5;3799:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3826:10;;:12;;;;;;;;;;;;;;3853:19;3866:5;3853:19;;;;;;;;;;;;;;;;;;;;;;3953:10;3940:9;;:23;;3936:68;;;3977:27;3993:10;3977:15;:27::i;:::-;3936:68;3194:817;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"../common/SelfAuthorized.sol\";\n\n/// @title OwnerManager - Manages a set of owners and a threshold to perform actions.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract OwnerManager is SelfAuthorized {\n\n event AddedOwner(address owner);\n event RemovedOwner(address owner);\n event ChangedThreshold(uint256 threshold);\n\n address public constant SENTINEL_OWNERS = address(0x1);\n\n mapping(address => address) internal owners;\n uint256 ownerCount;\n uint256 internal threshold;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n function setupOwners(address[] _owners, uint256 _threshold)\n internal\n {\n // Threshold can only be 0 at initialization.\n // Check ensures that setup function can only be called once.\n require(threshold == 0, \"Owners have already been setup\");\n // Validate that threshold is smaller than number of added owners.\n require(_threshold <= _owners.length, \"Threshold cannot exceed owner count\");\n // There has to be at least one Safe owner.\n require(_threshold >= 1, \"Threshold needs to be greater than 0\");\n // Initializing Safe owners.\n address currentOwner = SENTINEL_OWNERS;\n for (uint256 i = 0; i < _owners.length; i++) {\n // Owner address cannot be null.\n address owner = _owners[i];\n require(owner != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == 0, \"Duplicate owner address provided\");\n owners[currentOwner] = owner;\n currentOwner = owner;\n }\n owners[currentOwner] = SENTINEL_OWNERS;\n ownerCount = _owners.length;\n threshold = _threshold;\n }\n\n /// @dev Allows to add a new owner to the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param owner New owner address.\n /// @param _threshold New threshold.\n function addOwnerWithThreshold(address owner, uint256 _threshold)\n public\n authorized\n {\n // Owner address cannot be null.\n require(owner != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == 0, \"Address is already an owner\");\n owners[owner] = owners[SENTINEL_OWNERS];\n owners[SENTINEL_OWNERS] = owner;\n ownerCount++;\n emit AddedOwner(owner);\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to remove an owner from the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param prevOwner Owner that pointed to the owner to be removed in the linked list\n /// @param owner Owner address to be removed.\n /// @param _threshold New threshold.\n function removeOwner(address prevOwner, address owner, uint256 _threshold)\n public\n authorized\n {\n // Only allow to remove an owner, if threshold can still be reached.\n require(ownerCount - 1 >= _threshold, \"New owner count needs to be larger than new threshold\");\n // Validate owner address and check that it corresponds to owner index.\n require(owner != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n require(owners[prevOwner] == owner, \"Invalid prevOwner, owner pair provided\");\n owners[prevOwner] = owners[owner];\n owners[owner] = 0;\n ownerCount--;\n emit RemovedOwner(owner);\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to swap/replace an owner from the Safe with another address.\n /// This can only be done via a Safe transaction.\n /// @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n function swapOwner(address prevOwner, address oldOwner, address newOwner)\n public\n authorized\n {\n // Owner address cannot be null.\n require(newOwner != 0 && newOwner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[newOwner] == 0, \"Address is already an owner\");\n // Validate oldOwner address and check that it corresponds to owner index.\n require(oldOwner != 0 && oldOwner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n require(owners[prevOwner] == oldOwner, \"Invalid prevOwner, owner pair provided\");\n owners[newOwner] = owners[oldOwner];\n owners[prevOwner] = newOwner;\n owners[oldOwner] = 0;\n emit RemovedOwner(oldOwner);\n emit AddedOwner(newOwner);\n }\n\n /// @dev Allows to update the number of required confirmations by Safe owners.\n /// This can only be done via a Safe transaction.\n /// @param _threshold New threshold.\n function changeThreshold(uint256 _threshold)\n public\n authorized\n {\n // Validate that threshold is smaller than number of owners.\n require(_threshold <= ownerCount, \"Threshold cannot exceed owner count\");\n // There has to be at least one Safe owner.\n require(_threshold >= 1, \"Threshold needs to be greater than 0\");\n threshold = _threshold;\n emit ChangedThreshold(threshold);\n }\n\n function getThreshold()\n public\n view\n returns (uint256)\n {\n return threshold;\n }\n\n function isOwner(address owner)\n public\n view\n returns (bool)\n {\n return owners[owner] != 0;\n }\n\n /// @dev Returns array of owners.\n /// @return Array of Safe owners.\n function getOwners()\n public\n view\n returns (address[])\n {\n address[] memory array = new address[](ownerCount);\n\n // populate return array\n uint256 index = 0;\n address currentOwner = owners[SENTINEL_OWNERS];\n while(currentOwner != SENTINEL_OWNERS) {\n array[index] = currentOwner;\n currentOwner = owners[currentOwner];\n index ++;\n }\n return array;\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "exportedSymbols": { - "OwnerManager": [ - 1652 - ] - }, - "id": 1653, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1214, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "file": "../common/SelfAuthorized.sol", - "id": 1215, - "nodeType": "ImportDirective", - "scope": 1653, - "sourceUnit": 1736, - "src": "24:38:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1216, - "name": "SelfAuthorized", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1735, - "src": "273:14:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", - "typeString": "contract SelfAuthorized" - } - }, - "id": 1217, - "nodeType": "InheritanceSpecifier", - "src": "273:14:6" - } - ], - "contractDependencies": [ - 1735 - ], - "contractKind": "contract", - "documentation": "@title OwnerManager - Manages a set of owners and a threshold to perform actions.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1652, - "linearizedBaseContracts": [ - 1652, - 1735 - ], - "name": "OwnerManager", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 1221, - "name": "AddedOwner", - "nodeType": "EventDefinition", - "parameters": { - "id": 1220, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1219, - "indexed": false, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1221, - "src": "312:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1218, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "312:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "311:15:6" - }, - "src": "295:32:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 1225, - "name": "RemovedOwner", - "nodeType": "EventDefinition", - "parameters": { - "id": 1224, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1223, - "indexed": false, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1225, - "src": "351:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1222, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "351:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "350:15:6" - }, - "src": "332:34:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 1229, - "name": "ChangedThreshold", - "nodeType": "EventDefinition", - "parameters": { - "id": 1228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1227, - "indexed": false, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 1229, - "src": "394:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1226, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "394:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "393:19:6" - }, - "src": "371:42:6" - }, - { - "constant": true, - "id": 1234, - "name": "SENTINEL_OWNERS", - "nodeType": "VariableDeclaration", - "scope": 1652, - "src": "419:54:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1230, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "419:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307831", - "id": 1232, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "469:3:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 1231, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "461:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1233, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "461:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 1238, - "name": "owners", - "nodeType": "VariableDeclaration", - "scope": 1652, - "src": "480:43:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 1237, - "keyType": { - "id": 1235, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "488:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "480:27:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 1236, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "499:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1240, - "name": "ownerCount", - "nodeType": "VariableDeclaration", - "scope": 1652, - "src": "529:18:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1239, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "529:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1242, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 1652, - "src": "553:26:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1241, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "553:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 1340, - "nodeType": "Block", - "src": "856:1129:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1251, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "998:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1011:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "998:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f776e657273206861766520616c7265616479206265656e207365747570", - "id": 1254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1014:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", - "typeString": "literal_string \"Owners have already been setup\"" - }, - "value": "Owners have already been setup" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", - "typeString": "literal_string \"Owners have already been setup\"" - } - ], - "id": 1250, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "990:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "990:57:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1256, - "nodeType": "ExpressionStatement", - "src": "990:57:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1258, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1140:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1154:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1154:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1140:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1170:37:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - }, - "value": "Threshold cannot exceed owner count" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - } - ], - "id": 1257, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1132:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1132:76:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1264, - "nodeType": "ExpressionStatement", - "src": "1132:76:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1266, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1278:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1267, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1292:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1278:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1295:38:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - }, - "value": "Threshold needs to be greater than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - } - ], - "id": 1265, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1270:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1270:64:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1271, - "nodeType": "ExpressionStatement", - "src": "1270:64:6" - }, - { - "assignments": [ - 1273 - ], - "declarations": [ - { - "constant": false, - "id": 1273, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "1381:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1272, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1381:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1275, - "initialValue": { - "argumentTypes": null, - "id": 1274, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "1404:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1381:38:6" - }, - { - "body": { - "id": 1323, - "nodeType": "Block", - "src": "1474:388:6", - "statements": [ - { - "assignments": [ - 1288 - ], - "declarations": [ - { - "constant": false, - "id": 1288, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "1533:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1287, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1533:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1292, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1289, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1549:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1291, - "indexExpression": { - "argumentTypes": null, - "id": 1290, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1277, - "src": "1557:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1549:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1533:26:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1294, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1581:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1295, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1590:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1581:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1297, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1595:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1298, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "1604:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1595:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1581:38:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1621:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1293, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1573:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1573:81:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1303, - "nodeType": "ExpressionStatement", - "src": "1573:81:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1305, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "1720:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1307, - "indexExpression": { - "argumentTypes": null, - "id": 1306, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1727:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1720:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1308, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1737:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1720:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4475706c6963617465206f776e657220616464726573732070726f7669646564", - "id": 1310, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1740:34:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", - "typeString": "literal_string \"Duplicate owner address provided\"" - }, - "value": "Duplicate owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", - "typeString": "literal_string \"Duplicate owner address provided\"" - } - ], - "id": 1304, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1712:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1712:63:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1312, - "nodeType": "ExpressionStatement", - "src": "1712:63:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1313, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "1789:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1315, - "indexExpression": { - "argumentTypes": null, - "id": 1314, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1273, - "src": "1796:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1789:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1316, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1812:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1789:28:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1318, - "nodeType": "ExpressionStatement", - "src": "1789:28:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1319, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1273, - "src": "1831:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1320, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1846:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1831:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1322, - "nodeType": "ExpressionStatement", - "src": "1831:20:6" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1280, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1277, - "src": "1449:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1281, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1453:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1453:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1449:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1324, - "initializationExpression": { - "assignments": [ - 1277 - ], - "declarations": [ - { - "constant": false, - "id": 1277, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "1434:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1276, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1434:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1279, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1446:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1434:13:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1469:3:6", - "subExpression": { - "argumentTypes": null, - "id": 1284, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1277, - "src": "1469:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1286, - "nodeType": "ExpressionStatement", - "src": "1469:3:6" - }, - "nodeType": "ForStatement", - "src": "1429:433:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1325, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "1871:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1327, - "indexExpression": { - "argumentTypes": null, - "id": 1326, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1273, - "src": "1878:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1871:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1328, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "1894:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1871:38:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1330, - "nodeType": "ExpressionStatement", - "src": "1871:38:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1331, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "1919:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1332, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1932:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1932:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1919:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1335, - "nodeType": "ExpressionStatement", - "src": "1919:27:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1336, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "1956:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1337, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1968:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1956:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1339, - "nodeType": "ExpressionStatement", - "src": "1956:22:6" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.", - "id": 1341, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setupOwners", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1245, - "name": "_owners", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "796:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1243, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "796:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1244, - "length": null, - "nodeType": "ArrayTypeName", - "src": "796:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1247, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "815:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1246, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "815:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "795:39:6" - }, - "payable": false, - "returnParameters": { - "id": 1249, - "nodeType": "ParameterList", - "parameters": [], - "src": "856:0:6" - }, - "scope": 1652, - "src": "775:1210:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1399, - "nodeType": "Block", - "src": "2329:523:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1351, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2388:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2397:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2388:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1354, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2402:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1355, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "2411:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2402:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2388:38:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2428:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2380:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2380:81:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1360, - "nodeType": "ExpressionStatement", - "src": "2380:81:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1362, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2519:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1364, - "indexExpression": { - "argumentTypes": null, - "id": 1363, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2526:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2519:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1365, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2536:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2519:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1367, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2539:29:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - }, - "value": "Address is already an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - } - ], - "id": 1361, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2511:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2511:58:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1369, - "nodeType": "ExpressionStatement", - "src": "2511:58:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1370, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2579:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1372, - "indexExpression": { - "argumentTypes": null, - "id": 1371, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2586:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2579:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1373, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2595:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1375, - "indexExpression": { - "argumentTypes": null, - "id": 1374, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "2602:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2595:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2579:39:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1377, - "nodeType": "ExpressionStatement", - "src": "2579:39:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1378, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2628:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1380, - "indexExpression": { - "argumentTypes": null, - "id": 1379, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "2635:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2628:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1381, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2654:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2628:31:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1383, - "nodeType": "ExpressionStatement", - "src": "2628:31:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2669:12:6", - "subExpression": { - "argumentTypes": null, - "id": 1384, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "2669:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1386, - "nodeType": "ExpressionStatement", - "src": "2669:12:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1388, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2707:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1387, - "name": "AddedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "2696:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2696:17:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "EmitStatement", - "src": "2691:22:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1391, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "2781:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1392, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "2794:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2781:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1398, - "nodeType": "IfStatement", - "src": "2777:68:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1395, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "2834:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1394, - "name": "changeThreshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1580, - "src": "2818:15:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2818:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1397, - "nodeType": "ExpressionStatement", - "src": "2818:27:6" - } - } - ] - }, - "documentation": "@dev Allows to add a new owner to the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param owner New owner address.\n @param _threshold New threshold.", - "id": 1400, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1348, - "modifierName": { - "argumentTypes": null, - "id": 1347, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "2314:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2314:10:6" - } - ], - "name": "addOwnerWithThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1400, - "src": "2256:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1342, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2256:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1400, - "src": "2271:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1344, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2271:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2255:35:6" - }, - "payable": false, - "returnParameters": { - "id": 1349, - "nodeType": "ParameterList", - "parameters": [], - "src": "2329:0:6" - }, - "scope": 1652, - "src": "2225:627:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1469, - "nodeType": "Block", - "src": "3307:704:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1412, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "3402:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3415:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3402:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1415, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "3420:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3402:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64", - "id": 1417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3432:55:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", - "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" - }, - "value": "New owner count needs to be larger than new threshold" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", - "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" - } - ], - "id": 1411, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "3394:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3394:94:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1419, - "nodeType": "ExpressionStatement", - "src": "3394:94:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1421, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3586:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1422, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3595:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3586:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1424, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3600:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1425, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "3609:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3600:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3586:38:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3626:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1420, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "3578:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3578:81:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "3578:81:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3677:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "3684:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3677:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1435, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3698:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3677:26:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3705:40:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - }, - "value": "Invalid prevOwner, owner pair provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - } - ], - "id": 1431, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "3669:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3669:77:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1439, - "nodeType": "ExpressionStatement", - "src": "3669:77:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1440, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3756:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1442, - "indexExpression": { - "argumentTypes": null, - "id": 1441, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "3763:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3756:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1443, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3776:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1445, - "indexExpression": { - "argumentTypes": null, - "id": 1444, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3783:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3776:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3756:33:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1447, - "nodeType": "ExpressionStatement", - "src": "3756:33:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1448, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3799:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1450, - "indexExpression": { - "argumentTypes": null, - "id": 1449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3806:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3799:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3815:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3799:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1453, - "nodeType": "ExpressionStatement", - "src": "3799:17:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "3826:12:6", - "subExpression": { - "argumentTypes": null, - "id": 1454, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "3826:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1456, - "nodeType": "ExpressionStatement", - "src": "3826:12:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1458, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3866:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1457, - "name": "RemovedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1225, - "src": "3853:12:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3853:19:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1460, - "nodeType": "EmitStatement", - "src": "3848:24:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1461, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "3940:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1462, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "3953:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3940:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1468, - "nodeType": "IfStatement", - "src": "3936:68:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1465, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "3993:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1464, - "name": "changeThreshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1580, - "src": "3977:15:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3977:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1467, - "nodeType": "ExpressionStatement", - "src": "3977:27:6" - } - } - ] - }, - "documentation": "@dev Allows to remove an owner from the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be removed in the linked list\n @param owner Owner address to be removed.\n @param _threshold New threshold.", - "id": 1470, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1409, - "modifierName": { - "argumentTypes": null, - "id": 1408, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "3292:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3292:10:6" - } - ], - "name": "removeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1407, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1402, - "name": "prevOwner", - "nodeType": "VariableDeclaration", - "scope": 1470, - "src": "3215:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1401, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3215:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1404, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1470, - "src": "3234:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1403, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3234:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1406, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1470, - "src": "3249:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1405, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3249:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3214:54:6" - }, - "payable": false, - "returnParameters": { - "id": 1410, - "nodeType": "ParameterList", - "parameters": [], - "src": "3307:0:6" - }, - "scope": 1652, - "src": "3194:817:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1549, - "nodeType": "Block", - "src": "4457:711:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1482, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4516:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4528:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4516:13:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1485, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4533:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1486, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "4545:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4533:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4516:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4562:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1481, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4508:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4508:87:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1491, - "nodeType": "ExpressionStatement", - "src": "4508:87:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1493, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "4653:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1495, - "indexExpression": { - "argumentTypes": null, - "id": 1494, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4660:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4653:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4673:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4653:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1498, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4676:29:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - }, - "value": "Address is already an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - } - ], - "id": 1492, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4645:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4645:61:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1500, - "nodeType": "ExpressionStatement", - "src": "4645:61:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1502, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "4807:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1503, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4819:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4807:13:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1505, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "4824:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1506, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "4836:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4824:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4807:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4853:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1501, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4799:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4799:87:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1511, - "nodeType": "ExpressionStatement", - "src": "4799:87:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1513, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "4904:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1515, - "indexExpression": { - "argumentTypes": null, - "id": 1514, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "4911:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4904:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1516, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "4925:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4904:29:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4935:40:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - }, - "value": "Invalid prevOwner, owner pair provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - } - ], - "id": 1512, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4896:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4896:80:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1520, - "nodeType": "ExpressionStatement", - "src": "4896:80:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1521, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "4986:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1523, - "indexExpression": { - "argumentTypes": null, - "id": 1522, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4993:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4986:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1524, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "5005:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1526, - "indexExpression": { - "argumentTypes": null, - "id": 1525, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "5012:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5005:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4986:35:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1528, - "nodeType": "ExpressionStatement", - "src": "4986:35:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1529, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "5031:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1531, - "indexExpression": { - "argumentTypes": null, - "id": 1530, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "5038:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5031:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1532, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "5051:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5031:28:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1534, - "nodeType": "ExpressionStatement", - "src": "5031:28:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1535, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "5069:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1537, - "indexExpression": { - "argumentTypes": null, - "id": 1536, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "5076:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5069:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5088:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5069:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1540, - "nodeType": "ExpressionStatement", - "src": "5069:20:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1542, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "5117:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1541, - "name": "RemovedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1225, - "src": "5104:12:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5104:22:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1544, - "nodeType": "EmitStatement", - "src": "5099:27:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1546, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "5152:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1545, - "name": "AddedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5141:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5141:20:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1548, - "nodeType": "EmitStatement", - "src": "5136:25:6" - } - ] - }, - "documentation": "@dev Allows to swap/replace an owner from the Safe with another address.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.", - "id": 1550, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1479, - "modifierName": { - "argumentTypes": null, - "id": 1478, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "4442:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4442:10:6" - } - ], - "name": "swapOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1477, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1472, - "name": "prevOwner", - "nodeType": "VariableDeclaration", - "scope": 1550, - "src": "4364:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1471, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4364:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1474, - "name": "oldOwner", - "nodeType": "VariableDeclaration", - "scope": 1550, - "src": "4383:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1473, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4383:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1476, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 1550, - "src": "4401:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1475, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4401:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4363:55:6" - }, - "payable": false, - "returnParameters": { - "id": 1480, - "nodeType": "ParameterList", - "parameters": [], - "src": "4457:0:6" - }, - "scope": 1652, - "src": "4345:823:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1579, - "nodeType": "Block", - "src": "5440:358:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1558, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "5527:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1559, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "5541:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5527:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1561, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5553:37:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - }, - "value": "Threshold cannot exceed owner count" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - } - ], - "id": 1557, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "5519:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5519:72:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1563, - "nodeType": "ExpressionStatement", - "src": "5519:72:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1565, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "5661:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5675:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5661:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5678:38:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - }, - "value": "Threshold needs to be greater than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - } - ], - "id": 1564, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "5653:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5653:64:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1570, - "nodeType": "ExpressionStatement", - "src": "5653:64:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1571, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "5727:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1572, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "5739:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5727:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1574, - "nodeType": "ExpressionStatement", - "src": "5727:22:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1576, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "5781:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1575, - "name": "ChangedThreshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1229, - "src": "5764:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5764:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1578, - "nodeType": "EmitStatement", - "src": "5759:32:6" - } - ] - }, - "documentation": "@dev Allows to update the number of required confirmations by Safe owners.\n This can only be done via a Safe transaction.\n @param _threshold New threshold.", - "id": 1580, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1555, - "modifierName": { - "argumentTypes": null, - "id": 1554, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "5425:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5425:10:6" - } - ], - "name": "changeThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1553, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1552, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1580, - "src": "5382:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1551, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5382:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5381:20:6" - }, - "payable": false, - "returnParameters": { - "id": 1556, - "nodeType": "ParameterList", - "parameters": [], - "src": "5440:0:6" - }, - "scope": 1652, - "src": "5357:441:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1587, - "nodeType": "Block", - "src": "5886:33:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1585, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "5903:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1584, - "id": 1586, - "nodeType": "Return", - "src": "5896:16:6" - } - ] - }, - "documentation": null, - "id": 1588, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1581, - "nodeType": "ParameterList", - "parameters": [], - "src": "5825:2:6" - }, - "payable": false, - "returnParameters": { - "id": 1584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1583, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1588, - "src": "5873:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5873:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5872:9:6" - }, - "scope": 1652, - "src": "5804:115:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1601, - "nodeType": "Block", - "src": "6012:42:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1595, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "6029:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1597, - "indexExpression": { - "argumentTypes": null, - "id": 1596, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1590, - "src": "6036:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6029:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6046:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6029:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1594, - "id": 1600, - "nodeType": "Return", - "src": "6022:25:6" - } - ] - }, - "documentation": null, - "id": 1602, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1591, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1590, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1602, - "src": "5942:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1589, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5942:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5941:15:6" - }, - "payable": false, - "returnParameters": { - "id": 1594, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1593, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1602, - "src": "6002:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1592, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6002:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6001:6:6" - }, - "scope": 1652, - "src": "5925:129:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1650, - "nodeType": "Block", - "src": "6217:377:6", - "statements": [ - { - "assignments": [ - 1611 - ], - "declarations": [ - { - "constant": false, - "id": 1611, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6227:22:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1609, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6227:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1610, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6227:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1617, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1615, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "6266:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "6252:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 1612, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6256:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1613, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6256:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 1616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6252:25:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6227:50:6" - }, - { - "assignments": [ - 1619 - ], - "declarations": [ - { - "constant": false, - "id": 1619, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6321:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1618, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6321:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1621, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6337:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "6321:17:6" - }, - { - "assignments": [ - 1623 - ], - "declarations": [ - { - "constant": false, - "id": 1623, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6348:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6348:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1627, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1624, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "6371:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1626, - "indexExpression": { - "argumentTypes": null, - "id": 1625, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "6378:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6371:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6348:46:6" - }, - { - "body": { - "id": 1646, - "nodeType": "Block", - "src": "6443:123:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1631, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1611, - "src": "6457:5:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1633, - "indexExpression": { - "argumentTypes": null, - "id": 1632, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1619, - "src": "6463:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6457:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1634, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6472:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6457:27:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1636, - "nodeType": "ExpressionStatement", - "src": "6457:27:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1637, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6498:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1638, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "6513:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1640, - "indexExpression": { - "argumentTypes": null, - "id": 1639, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6520:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6513:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6498:35:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1642, - "nodeType": "ExpressionStatement", - "src": "6498:35:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6547:8:6", - "subExpression": { - "argumentTypes": null, - "id": 1643, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1619, - "src": "6547:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1645, - "nodeType": "ExpressionStatement", - "src": "6547:8:6" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1628, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6410:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1629, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "6426:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6410:31:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1647, - "nodeType": "WhileStatement", - "src": "6404:162:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1648, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1611, - "src": "6582:5:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1607, - "id": 1649, - "nodeType": "Return", - "src": "6575:12:6" - } - ] - }, - "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 1651, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getOwners", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1603, - "nodeType": "ParameterList", - "parameters": [], - "src": "6154:2:6" - }, - "payable": false, - "returnParameters": { - "id": 1607, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1606, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6202:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1604, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6202:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1605, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6202:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6201:11:6" - }, - "scope": 1652, - "src": "6136:458:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1653, - "src": "248:6348:6" - } - ], - "src": "0:6597:6" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "exportedSymbols": { - "OwnerManager": [ - 1652 - ] - }, - "id": 1653, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1214, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "file": "../common/SelfAuthorized.sol", - "id": 1215, - "nodeType": "ImportDirective", - "scope": 1653, - "sourceUnit": 1736, - "src": "24:38:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1216, - "name": "SelfAuthorized", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1735, - "src": "273:14:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", - "typeString": "contract SelfAuthorized" - } - }, - "id": 1217, - "nodeType": "InheritanceSpecifier", - "src": "273:14:6" - } - ], - "contractDependencies": [ - 1735 - ], - "contractKind": "contract", - "documentation": "@title OwnerManager - Manages a set of owners and a threshold to perform actions.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1652, - "linearizedBaseContracts": [ - 1652, - 1735 - ], - "name": "OwnerManager", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 1221, - "name": "AddedOwner", - "nodeType": "EventDefinition", - "parameters": { - "id": 1220, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1219, - "indexed": false, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1221, - "src": "312:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1218, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "312:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "311:15:6" - }, - "src": "295:32:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 1225, - "name": "RemovedOwner", - "nodeType": "EventDefinition", - "parameters": { - "id": 1224, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1223, - "indexed": false, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1225, - "src": "351:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1222, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "351:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "350:15:6" - }, - "src": "332:34:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 1229, - "name": "ChangedThreshold", - "nodeType": "EventDefinition", - "parameters": { - "id": 1228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1227, - "indexed": false, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 1229, - "src": "394:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1226, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "394:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "393:19:6" - }, - "src": "371:42:6" - }, - { - "constant": true, - "id": 1234, - "name": "SENTINEL_OWNERS", - "nodeType": "VariableDeclaration", - "scope": 1652, - "src": "419:54:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1230, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "419:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307831", - "id": 1232, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "469:3:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 1231, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "461:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1233, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "461:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 1238, - "name": "owners", - "nodeType": "VariableDeclaration", - "scope": 1652, - "src": "480:43:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 1237, - "keyType": { - "id": 1235, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "488:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "480:27:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 1236, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "499:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1240, - "name": "ownerCount", - "nodeType": "VariableDeclaration", - "scope": 1652, - "src": "529:18:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1239, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "529:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1242, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 1652, - "src": "553:26:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1241, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "553:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 1340, - "nodeType": "Block", - "src": "856:1129:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1251, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "998:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1011:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "998:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f776e657273206861766520616c7265616479206265656e207365747570", - "id": 1254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1014:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", - "typeString": "literal_string \"Owners have already been setup\"" - }, - "value": "Owners have already been setup" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", - "typeString": "literal_string \"Owners have already been setup\"" - } - ], - "id": 1250, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "990:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "990:57:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1256, - "nodeType": "ExpressionStatement", - "src": "990:57:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1258, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1140:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1154:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1154:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1140:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1170:37:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - }, - "value": "Threshold cannot exceed owner count" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - } - ], - "id": 1257, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1132:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1132:76:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1264, - "nodeType": "ExpressionStatement", - "src": "1132:76:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1266, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1278:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1267, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1292:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1278:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1295:38:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - }, - "value": "Threshold needs to be greater than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - } - ], - "id": 1265, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1270:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1270:64:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1271, - "nodeType": "ExpressionStatement", - "src": "1270:64:6" - }, - { - "assignments": [ - 1273 - ], - "declarations": [ - { - "constant": false, - "id": 1273, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "1381:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1272, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1381:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1275, - "initialValue": { - "argumentTypes": null, - "id": 1274, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "1404:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1381:38:6" - }, - { - "body": { - "id": 1323, - "nodeType": "Block", - "src": "1474:388:6", - "statements": [ - { - "assignments": [ - 1288 - ], - "declarations": [ - { - "constant": false, - "id": 1288, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "1533:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1287, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1533:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1292, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1289, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1549:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1291, - "indexExpression": { - "argumentTypes": null, - "id": 1290, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1277, - "src": "1557:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1549:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1533:26:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1294, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1581:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1295, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1590:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1581:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1297, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1595:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1298, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "1604:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1595:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1581:38:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1621:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1293, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1573:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1573:81:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1303, - "nodeType": "ExpressionStatement", - "src": "1573:81:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1305, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "1720:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1307, - "indexExpression": { - "argumentTypes": null, - "id": 1306, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1727:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1720:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1308, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1737:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1720:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4475706c6963617465206f776e657220616464726573732070726f7669646564", - "id": 1310, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1740:34:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", - "typeString": "literal_string \"Duplicate owner address provided\"" - }, - "value": "Duplicate owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", - "typeString": "literal_string \"Duplicate owner address provided\"" - } - ], - "id": 1304, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1712:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1712:63:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1312, - "nodeType": "ExpressionStatement", - "src": "1712:63:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1313, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "1789:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1315, - "indexExpression": { - "argumentTypes": null, - "id": 1314, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1273, - "src": "1796:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1789:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1316, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1812:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1789:28:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1318, - "nodeType": "ExpressionStatement", - "src": "1789:28:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1319, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1273, - "src": "1831:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1320, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "1846:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1831:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1322, - "nodeType": "ExpressionStatement", - "src": "1831:20:6" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1280, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1277, - "src": "1449:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1281, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1453:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1453:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1449:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1324, - "initializationExpression": { - "assignments": [ - 1277 - ], - "declarations": [ - { - "constant": false, - "id": 1277, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "1434:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1276, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1434:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1279, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1446:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1434:13:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1469:3:6", - "subExpression": { - "argumentTypes": null, - "id": 1284, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1277, - "src": "1469:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1286, - "nodeType": "ExpressionStatement", - "src": "1469:3:6" - }, - "nodeType": "ForStatement", - "src": "1429:433:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1325, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "1871:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1327, - "indexExpression": { - "argumentTypes": null, - "id": 1326, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1273, - "src": "1878:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1871:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1328, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "1894:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1871:38:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1330, - "nodeType": "ExpressionStatement", - "src": "1871:38:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1331, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "1919:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1332, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1932:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1932:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1919:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1335, - "nodeType": "ExpressionStatement", - "src": "1919:27:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1336, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "1956:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1337, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1968:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1956:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1339, - "nodeType": "ExpressionStatement", - "src": "1956:22:6" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.", - "id": 1341, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setupOwners", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1245, - "name": "_owners", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "796:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1243, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "796:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1244, - "length": null, - "nodeType": "ArrayTypeName", - "src": "796:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1247, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "815:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1246, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "815:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "795:39:6" - }, - "payable": false, - "returnParameters": { - "id": 1249, - "nodeType": "ParameterList", - "parameters": [], - "src": "856:0:6" - }, - "scope": 1652, - "src": "775:1210:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1399, - "nodeType": "Block", - "src": "2329:523:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1351, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2388:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2397:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2388:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1354, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2402:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1355, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "2411:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2402:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2388:38:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2428:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2380:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2380:81:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1360, - "nodeType": "ExpressionStatement", - "src": "2380:81:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1362, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2519:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1364, - "indexExpression": { - "argumentTypes": null, - "id": 1363, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2526:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2519:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1365, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2536:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2519:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1367, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2539:29:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - }, - "value": "Address is already an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - } - ], - "id": 1361, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2511:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2511:58:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1369, - "nodeType": "ExpressionStatement", - "src": "2511:58:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1370, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2579:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1372, - "indexExpression": { - "argumentTypes": null, - "id": 1371, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2586:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2579:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1373, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2595:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1375, - "indexExpression": { - "argumentTypes": null, - "id": 1374, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "2602:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2595:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2579:39:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1377, - "nodeType": "ExpressionStatement", - "src": "2579:39:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1378, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "2628:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1380, - "indexExpression": { - "argumentTypes": null, - "id": 1379, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "2635:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2628:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1381, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2654:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2628:31:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1383, - "nodeType": "ExpressionStatement", - "src": "2628:31:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2669:12:6", - "subExpression": { - "argumentTypes": null, - "id": 1384, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "2669:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1386, - "nodeType": "ExpressionStatement", - "src": "2669:12:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1388, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2707:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1387, - "name": "AddedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "2696:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2696:17:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "EmitStatement", - "src": "2691:22:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1391, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "2781:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1392, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "2794:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2781:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1398, - "nodeType": "IfStatement", - "src": "2777:68:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1395, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "2834:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1394, - "name": "changeThreshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1580, - "src": "2818:15:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2818:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1397, - "nodeType": "ExpressionStatement", - "src": "2818:27:6" - } - } - ] - }, - "documentation": "@dev Allows to add a new owner to the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param owner New owner address.\n @param _threshold New threshold.", - "id": 1400, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1348, - "modifierName": { - "argumentTypes": null, - "id": 1347, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "2314:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2314:10:6" - } - ], - "name": "addOwnerWithThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1400, - "src": "2256:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1342, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2256:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1400, - "src": "2271:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1344, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2271:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2255:35:6" - }, - "payable": false, - "returnParameters": { - "id": 1349, - "nodeType": "ParameterList", - "parameters": [], - "src": "2329:0:6" - }, - "scope": 1652, - "src": "2225:627:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1469, - "nodeType": "Block", - "src": "3307:704:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1412, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "3402:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3415:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3402:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1415, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "3420:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3402:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64", - "id": 1417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3432:55:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", - "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" - }, - "value": "New owner count needs to be larger than new threshold" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", - "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" - } - ], - "id": 1411, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "3394:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3394:94:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1419, - "nodeType": "ExpressionStatement", - "src": "3394:94:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1421, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3586:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1422, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3595:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3586:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1424, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3600:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1425, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "3609:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3600:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3586:38:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3626:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1420, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "3578:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3578:81:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "3578:81:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3677:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "3684:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3677:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1435, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3698:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3677:26:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3705:40:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - }, - "value": "Invalid prevOwner, owner pair provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - } - ], - "id": 1431, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "3669:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3669:77:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1439, - "nodeType": "ExpressionStatement", - "src": "3669:77:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1440, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3756:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1442, - "indexExpression": { - "argumentTypes": null, - "id": 1441, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "3763:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3756:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1443, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3776:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1445, - "indexExpression": { - "argumentTypes": null, - "id": 1444, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3783:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3776:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3756:33:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1447, - "nodeType": "ExpressionStatement", - "src": "3756:33:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1448, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "3799:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1450, - "indexExpression": { - "argumentTypes": null, - "id": 1449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3806:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3799:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3815:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3799:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1453, - "nodeType": "ExpressionStatement", - "src": "3799:17:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "3826:12:6", - "subExpression": { - "argumentTypes": null, - "id": 1454, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "3826:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1456, - "nodeType": "ExpressionStatement", - "src": "3826:12:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1458, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1404, - "src": "3866:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1457, - "name": "RemovedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1225, - "src": "3853:12:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3853:19:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1460, - "nodeType": "EmitStatement", - "src": "3848:24:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1461, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "3940:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1462, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "3953:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3940:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1468, - "nodeType": "IfStatement", - "src": "3936:68:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1465, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "3993:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1464, - "name": "changeThreshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1580, - "src": "3977:15:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3977:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1467, - "nodeType": "ExpressionStatement", - "src": "3977:27:6" - } - } - ] - }, - "documentation": "@dev Allows to remove an owner from the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be removed in the linked list\n @param owner Owner address to be removed.\n @param _threshold New threshold.", - "id": 1470, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1409, - "modifierName": { - "argumentTypes": null, - "id": 1408, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "3292:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3292:10:6" - } - ], - "name": "removeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1407, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1402, - "name": "prevOwner", - "nodeType": "VariableDeclaration", - "scope": 1470, - "src": "3215:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1401, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3215:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1404, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1470, - "src": "3234:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1403, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3234:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1406, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1470, - "src": "3249:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1405, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3249:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3214:54:6" - }, - "payable": false, - "returnParameters": { - "id": 1410, - "nodeType": "ParameterList", - "parameters": [], - "src": "3307:0:6" - }, - "scope": 1652, - "src": "3194:817:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1549, - "nodeType": "Block", - "src": "4457:711:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1482, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4516:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4528:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4516:13:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1485, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4533:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1486, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "4545:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4533:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4516:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4562:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1481, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4508:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4508:87:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1491, - "nodeType": "ExpressionStatement", - "src": "4508:87:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1493, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "4653:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1495, - "indexExpression": { - "argumentTypes": null, - "id": 1494, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4660:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4653:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4673:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4653:21:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1498, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4676:29:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - }, - "value": "Address is already an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - } - ], - "id": 1492, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4645:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4645:61:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1500, - "nodeType": "ExpressionStatement", - "src": "4645:61:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1502, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "4807:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1503, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4819:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4807:13:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1505, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "4824:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1506, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "4836:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4824:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4807:44:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4853:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1501, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4799:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4799:87:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1511, - "nodeType": "ExpressionStatement", - "src": "4799:87:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1513, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "4904:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1515, - "indexExpression": { - "argumentTypes": null, - "id": 1514, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "4911:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4904:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1516, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "4925:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4904:29:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4935:40:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - }, - "value": "Invalid prevOwner, owner pair provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - } - ], - "id": 1512, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "4896:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4896:80:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1520, - "nodeType": "ExpressionStatement", - "src": "4896:80:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1521, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "4986:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1523, - "indexExpression": { - "argumentTypes": null, - "id": 1522, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "4993:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4986:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1524, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "5005:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1526, - "indexExpression": { - "argumentTypes": null, - "id": 1525, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "5012:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5005:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4986:35:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1528, - "nodeType": "ExpressionStatement", - "src": "4986:35:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1529, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "5031:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1531, - "indexExpression": { - "argumentTypes": null, - "id": 1530, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "5038:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5031:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1532, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "5051:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5031:28:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1534, - "nodeType": "ExpressionStatement", - "src": "5031:28:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1535, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "5069:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1537, - "indexExpression": { - "argumentTypes": null, - "id": 1536, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "5076:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5069:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5088:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5069:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1540, - "nodeType": "ExpressionStatement", - "src": "5069:20:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1542, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "5117:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1541, - "name": "RemovedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1225, - "src": "5104:12:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5104:22:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1544, - "nodeType": "EmitStatement", - "src": "5099:27:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1546, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "5152:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1545, - "name": "AddedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5141:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5141:20:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1548, - "nodeType": "EmitStatement", - "src": "5136:25:6" - } - ] - }, - "documentation": "@dev Allows to swap/replace an owner from the Safe with another address.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.", - "id": 1550, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1479, - "modifierName": { - "argumentTypes": null, - "id": 1478, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "4442:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4442:10:6" - } - ], - "name": "swapOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1477, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1472, - "name": "prevOwner", - "nodeType": "VariableDeclaration", - "scope": 1550, - "src": "4364:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1471, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4364:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1474, - "name": "oldOwner", - "nodeType": "VariableDeclaration", - "scope": 1550, - "src": "4383:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1473, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4383:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1476, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 1550, - "src": "4401:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1475, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4401:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4363:55:6" - }, - "payable": false, - "returnParameters": { - "id": 1480, - "nodeType": "ParameterList", - "parameters": [], - "src": "4457:0:6" - }, - "scope": 1652, - "src": "4345:823:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1579, - "nodeType": "Block", - "src": "5440:358:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1558, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "5527:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1559, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "5541:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5527:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1561, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5553:37:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - }, - "value": "Threshold cannot exceed owner count" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - } - ], - "id": 1557, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "5519:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5519:72:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1563, - "nodeType": "ExpressionStatement", - "src": "5519:72:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1565, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "5661:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5675:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5661:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5678:38:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - }, - "value": "Threshold needs to be greater than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - } - ], - "id": 1564, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "5653:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5653:64:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1570, - "nodeType": "ExpressionStatement", - "src": "5653:64:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1571, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "5727:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1572, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "5739:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5727:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1574, - "nodeType": "ExpressionStatement", - "src": "5727:22:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1576, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "5781:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1575, - "name": "ChangedThreshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1229, - "src": "5764:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5764:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1578, - "nodeType": "EmitStatement", - "src": "5759:32:6" - } - ] - }, - "documentation": "@dev Allows to update the number of required confirmations by Safe owners.\n This can only be done via a Safe transaction.\n @param _threshold New threshold.", - "id": 1580, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1555, - "modifierName": { - "argumentTypes": null, - "id": 1554, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1734, - "src": "5425:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5425:10:6" - } - ], - "name": "changeThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1553, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1552, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1580, - "src": "5382:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1551, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5382:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5381:20:6" - }, - "payable": false, - "returnParameters": { - "id": 1556, - "nodeType": "ParameterList", - "parameters": [], - "src": "5440:0:6" - }, - "scope": 1652, - "src": "5357:441:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1587, - "nodeType": "Block", - "src": "5886:33:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1585, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1242, - "src": "5903:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1584, - "id": 1586, - "nodeType": "Return", - "src": "5896:16:6" - } - ] - }, - "documentation": null, - "id": 1588, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1581, - "nodeType": "ParameterList", - "parameters": [], - "src": "5825:2:6" - }, - "payable": false, - "returnParameters": { - "id": 1584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1583, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1588, - "src": "5873:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5873:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5872:9:6" - }, - "scope": 1652, - "src": "5804:115:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1601, - "nodeType": "Block", - "src": "6012:42:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1595, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "6029:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1597, - "indexExpression": { - "argumentTypes": null, - "id": 1596, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1590, - "src": "6036:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6029:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6046:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6029:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1594, - "id": 1600, - "nodeType": "Return", - "src": "6022:25:6" - } - ] - }, - "documentation": null, - "id": 1602, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1591, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1590, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1602, - "src": "5942:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1589, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5942:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5941:15:6" - }, - "payable": false, - "returnParameters": { - "id": 1594, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1593, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1602, - "src": "6002:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1592, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6002:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6001:6:6" - }, - "scope": 1652, - "src": "5925:129:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1650, - "nodeType": "Block", - "src": "6217:377:6", - "statements": [ - { - "assignments": [ - 1611 - ], - "declarations": [ - { - "constant": false, - "id": 1611, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6227:22:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1609, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6227:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1610, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6227:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1617, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1615, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "6266:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "6252:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 1612, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6256:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1613, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6256:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 1616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6252:25:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6227:50:6" - }, - { - "assignments": [ - 1619 - ], - "declarations": [ - { - "constant": false, - "id": 1619, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6321:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1618, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6321:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1621, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6337:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "6321:17:6" - }, - { - "assignments": [ - 1623 - ], - "declarations": [ - { - "constant": false, - "id": 1623, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6348:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6348:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1627, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1624, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "6371:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1626, - "indexExpression": { - "argumentTypes": null, - "id": 1625, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "6378:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6371:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6348:46:6" - }, - { - "body": { - "id": 1646, - "nodeType": "Block", - "src": "6443:123:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1631, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1611, - "src": "6457:5:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1633, - "indexExpression": { - "argumentTypes": null, - "id": 1632, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1619, - "src": "6463:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6457:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1634, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6472:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6457:27:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1636, - "nodeType": "ExpressionStatement", - "src": "6457:27:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1637, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6498:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1638, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1238, - "src": "6513:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1640, - "indexExpression": { - "argumentTypes": null, - "id": 1639, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6520:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6513:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6498:35:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1642, - "nodeType": "ExpressionStatement", - "src": "6498:35:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6547:8:6", - "subExpression": { - "argumentTypes": null, - "id": 1643, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1619, - "src": "6547:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1645, - "nodeType": "ExpressionStatement", - "src": "6547:8:6" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1628, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "6410:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1629, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "6426:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6410:31:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1647, - "nodeType": "WhileStatement", - "src": "6404:162:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1648, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1611, - "src": "6582:5:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1607, - "id": 1649, - "nodeType": "Return", - "src": "6575:12:6" - } - ] - }, - "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 1651, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getOwners", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1603, - "nodeType": "ParameterList", - "parameters": [], - "src": "6154:2:6" - }, - "payable": false, - "returnParameters": { - "id": 1607, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1606, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1651, - "src": "6202:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1604, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6202:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1605, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6202:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6201:11:6" - }, - "scope": 1652, - "src": "6136:458:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1653, - "src": "248:6348:6" - } - ], - "src": "0:6597:6" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.918Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/PayingProxy.json b/safe-contracts/build/contracts/PayingProxy.json deleted file mode 100644 index 1ecaafe9..00000000 --- a/safe-contracts/build/contracts/PayingProxy.json +++ /dev/null @@ -1,1616 +0,0 @@ -{ - "contractName": "PayingProxy", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "proxyType", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "implementation", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - }, - { - "name": "initializer", - "type": "bytes" - }, - { - "name": "funder", - "type": "address" - }, - { - "name": "paymentToken", - "type": "address" - }, - { - "name": "payment", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161060a38038061060a833981018060405281019080805190602001909291908051820192919060200180519060200190929190805190602001909291908051906020019092919050505084848160008173ffffffffffffffffffffffffffffffffffffffff1614151515610116576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101a35773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e600082141561019f573d81fd5b5050505b5050600081111561036d57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156102b7578273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f436f756c64206e6f74207061792073616665206372656174696f6e207769746881526020017f206574686572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61036c565b6102d1828483610377640100000000026401000000009004565b151561036b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f436f756c64206e6f74207061792073616665206372656174696f6e207769746881526020017f20746f6b656e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b5050505050610490565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d60008114610473576020811461047b5760009450610485565b829450610485565b8151158315171594505b505050509392505050565b61016b8061049f6000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820f4865d803249158ffb1d82b19d119f60c2a50ca3b6f4fa2715b2740fb12915270029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820f4865d803249158ffb1d82b19d119f60c2a50ca3b6f4fa2715b2740fb12915270029", - "sourceMap": "459:1072:22:-;;;953:576;8:9:-1;5:2;;;30:1;27;20:12;5:2;953:576:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1094:11;1107;668::21;593:1:23;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;735:1:21;714:11;:18;:22;710:519;;;879:42;875:1;869:8;865:57;1043:1;1040;1026:11;1020:18;1013:4;1000:11;996:22;984:10;976:5;971:3;967:15;954:91;1079:4;1073:11;1124:14;1121:1;1116:3;1101:38;1171:1;1162:7;1159:14;1156:2;;;1188:14;1183:3;1176:27;1156:2;829:390;;;;610:625;;1163:1:22;1153:7;:11;1149:373;;;1208:1;1184:26;;:12;:26;;;1180:332;;;1300:6;:11;;:20;1312:7;1300:20;;;;;;;;;;;;;;;;;;;;;;;1292:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1180:332;;;1410:44;1424:12;1438:6;1446:7;1410:13;;;:44;;;:::i;:::-;1402:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1180:332;1149:373;953:576;;;;;459:1072;;430:752:10;568:16;600:17;673:8;683:6;620:70;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;620:70:10;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;620:70:10;600:90;;867:1;864;857:4;851:11;844:4;838;834:15;831:1;824:5;816;811:3;807:15;802:67;899:4;893:11;940:14;937:1;932:3;917:38;975:14;1008:1;1003:33;;;;1054:4;1049:76;;;;1163:1;1148:16;;968:198;;1003:33;1027:7;1012:22;;1003:33;;1049:76;1116:3;1110:10;1103:18;1093:7;1086:15;1083:39;1076:47;1061:62;;968:198;;773:403;;;;;;;;:::o;459:1072:22:-;;;;;;;", - "deployedSourceMap": "459:1072:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42:23;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:23;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:23;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302:118;:::o", - "source": "pragma solidity 0.4.24;\nimport \"../common/SecuredTokenTransfer.sol\";\nimport \"./DelegateConstructorProxy.sol\";\n\n/// @title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract PayingProxy is DelegateConstructorProxy, SecuredTokenTransfer {\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n /// @param initializer Data used for a delegate call to initialize the contract.\n /// @param funder Address that should be paid for the execution of this call\n /// @param paymentToken Token that should be used for the payment (0 is ETH)\n /// @param payment Value that should be paid\n constructor(address _masterCopy, bytes initializer, address funder, address paymentToken, uint256 payment) \n DelegateConstructorProxy(_masterCopy, initializer)\n public\n {\n if (payment > 0) {\n if (paymentToken == address(0)) {\n // solium-disable-next-line security/no-send\n require(funder.send(payment), \"Could not pay safe creation with ether\");\n } else {\n require(transferToken(paymentToken, funder, payment), \"Could not pay safe creation with token\");\n }\n } \n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", - "exportedSymbols": { - "PayingProxy": [ - 2797 - ] - }, - "id": 2798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2742, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:22" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "file": "../common/SecuredTokenTransfer.sol", - "id": 2743, - "nodeType": "ImportDirective", - "scope": 2798, - "sourceUnit": 1719, - "src": "24:44:22", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", - "file": "./DelegateConstructorProxy.sol", - "id": 2744, - "nodeType": "ImportDirective", - "scope": 2798, - "sourceUnit": 2741, - "src": "69:40:22", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2745, - "name": "DelegateConstructorProxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2740, - "src": "483:24:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DelegateConstructorProxy_$2740", - "typeString": "contract DelegateConstructorProxy" - } - }, - "id": 2746, - "nodeType": "InheritanceSpecifier", - "src": "483:24:22" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2747, - "name": "SecuredTokenTransfer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1718, - "src": "509:20:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1718", - "typeString": "contract SecuredTokenTransfer" - } - }, - "id": 2748, - "nodeType": "InheritanceSpecifier", - "src": "509:20:22" - } - ], - "contractDependencies": [ - 1718, - 2740, - 2840 - ], - "contractKind": "contract", - "documentation": "@title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 2797, - "linearizedBaseContracts": [ - 2797, - 1718, - 2740, - 2840 - ], - "name": "PayingProxy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2795, - "nodeType": "Block", - "src": "1139:390:22", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2765, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2758, - "src": "1153:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1163:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1153:11:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2794, - "nodeType": "IfStatement", - "src": "1149:373:22", - "trueBody": { - "id": 2793, - "nodeType": "Block", - "src": "1166:356:22", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2768, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "1184:12:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1208:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1200:7:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2771, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1200:10:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1184:26:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2791, - "nodeType": "Block", - "src": "1384:128:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2784, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "1424:12:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2785, - "name": "funder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "1438:6:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2786, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2758, - "src": "1446:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2783, - "name": "transferToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1717, - "src": "1410:13:22", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 2787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1410:44:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e207769746820746f6b656e", - "id": 2788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1456:40:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", - "typeString": "literal_string \"Could not pay safe creation with token\"" - }, - "value": "Could not pay safe creation with token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", - "typeString": "literal_string \"Could not pay safe creation with token\"" - } - ], - "id": 2782, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1402:7:22", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1402:95:22", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2790, - "nodeType": "ExpressionStatement", - "src": "1402:95:22" - } - ] - }, - "id": 2792, - "nodeType": "IfStatement", - "src": "1180:332:22", - "trueBody": { - "id": 2781, - "nodeType": "Block", - "src": "1212:166:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2776, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2758, - "src": "1312:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2774, - "name": "funder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "1300:6:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "send", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1300:11:22", - "typeDescriptions": { - "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) returns (bool)" - } - }, - "id": 2777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1300:20:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e2077697468206574686572", - "id": 2778, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1322:40:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", - "typeString": "literal_string \"Could not pay safe creation with ether\"" - }, - "value": "Could not pay safe creation with ether" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", - "typeString": "literal_string \"Could not pay safe creation with ether\"" - } - ], - "id": 2773, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1292:7:22", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1292:71:22", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2780, - "nodeType": "ExpressionStatement", - "src": "1292:71:22" - } - ] - } - } - ] - } - } - ] - }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.\n @param funder Address that should be paid for the execution of this call\n @param paymentToken Token that should be used for the payment (0 is ETH)\n @param payment Value that should be paid", - "id": 2796, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2761, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2750, - "src": "1094:11:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2762, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2752, - "src": "1107:11:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "id": 2763, - "modifierName": { - "argumentTypes": null, - "id": 2760, - "name": "DelegateConstructorProxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "1069:24:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$2740_$", - "typeString": "type(contract DelegateConstructorProxy)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1069:50:22" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2759, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2750, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "965:19:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2749, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "965:7:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2752, - "name": "initializer", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "986:17:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2751, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "986:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2754, - "name": "funder", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "1005:14:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1005:7:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2756, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "1021:20:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2755, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2758, - "name": "payment", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "1043:15:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2757, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1043:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "964:95:22" - }, - "payable": false, - "returnParameters": { - "id": 2764, - "nodeType": "ParameterList", - "parameters": [], - "src": "1139:0:22" - }, - "scope": 2797, - "src": "953:576:22", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2798, - "src": "459:1072:22" - } - ], - "src": "0:1532:22" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", - "exportedSymbols": { - "PayingProxy": [ - 2797 - ] - }, - "id": 2798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2742, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:22" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "file": "../common/SecuredTokenTransfer.sol", - "id": 2743, - "nodeType": "ImportDirective", - "scope": 2798, - "sourceUnit": 1719, - "src": "24:44:22", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", - "file": "./DelegateConstructorProxy.sol", - "id": 2744, - "nodeType": "ImportDirective", - "scope": 2798, - "sourceUnit": 2741, - "src": "69:40:22", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2745, - "name": "DelegateConstructorProxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2740, - "src": "483:24:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DelegateConstructorProxy_$2740", - "typeString": "contract DelegateConstructorProxy" - } - }, - "id": 2746, - "nodeType": "InheritanceSpecifier", - "src": "483:24:22" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2747, - "name": "SecuredTokenTransfer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1718, - "src": "509:20:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1718", - "typeString": "contract SecuredTokenTransfer" - } - }, - "id": 2748, - "nodeType": "InheritanceSpecifier", - "src": "509:20:22" - } - ], - "contractDependencies": [ - 1718, - 2740, - 2840 - ], - "contractKind": "contract", - "documentation": "@title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 2797, - "linearizedBaseContracts": [ - 2797, - 1718, - 2740, - 2840 - ], - "name": "PayingProxy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2795, - "nodeType": "Block", - "src": "1139:390:22", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2765, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2758, - "src": "1153:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1163:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1153:11:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2794, - "nodeType": "IfStatement", - "src": "1149:373:22", - "trueBody": { - "id": 2793, - "nodeType": "Block", - "src": "1166:356:22", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2768, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "1184:12:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1208:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1200:7:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2771, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1200:10:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1184:26:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2791, - "nodeType": "Block", - "src": "1384:128:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2784, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "1424:12:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2785, - "name": "funder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "1438:6:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2786, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2758, - "src": "1446:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2783, - "name": "transferToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1717, - "src": "1410:13:22", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 2787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1410:44:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e207769746820746f6b656e", - "id": 2788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1456:40:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", - "typeString": "literal_string \"Could not pay safe creation with token\"" - }, - "value": "Could not pay safe creation with token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", - "typeString": "literal_string \"Could not pay safe creation with token\"" - } - ], - "id": 2782, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1402:7:22", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1402:95:22", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2790, - "nodeType": "ExpressionStatement", - "src": "1402:95:22" - } - ] - }, - "id": 2792, - "nodeType": "IfStatement", - "src": "1180:332:22", - "trueBody": { - "id": 2781, - "nodeType": "Block", - "src": "1212:166:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2776, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2758, - "src": "1312:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2774, - "name": "funder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "1300:6:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "send", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1300:11:22", - "typeDescriptions": { - "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) returns (bool)" - } - }, - "id": 2777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1300:20:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e2077697468206574686572", - "id": 2778, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1322:40:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", - "typeString": "literal_string \"Could not pay safe creation with ether\"" - }, - "value": "Could not pay safe creation with ether" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", - "typeString": "literal_string \"Could not pay safe creation with ether\"" - } - ], - "id": 2773, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1292:7:22", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1292:71:22", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2780, - "nodeType": "ExpressionStatement", - "src": "1292:71:22" - } - ] - } - } - ] - } - } - ] - }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.\n @param funder Address that should be paid for the execution of this call\n @param paymentToken Token that should be used for the payment (0 is ETH)\n @param payment Value that should be paid", - "id": 2796, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2761, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2750, - "src": "1094:11:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2762, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2752, - "src": "1107:11:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "id": 2763, - "modifierName": { - "argumentTypes": null, - "id": 2760, - "name": "DelegateConstructorProxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2740, - "src": "1069:24:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$2740_$", - "typeString": "type(contract DelegateConstructorProxy)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1069:50:22" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2759, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2750, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "965:19:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2749, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "965:7:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2752, - "name": "initializer", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "986:17:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2751, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "986:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2754, - "name": "funder", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "1005:14:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1005:7:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2756, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "1021:20:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2755, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2758, - "name": "payment", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "1043:15:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2757, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1043:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "964:95:22" - }, - "payable": false, - "returnParameters": { - "id": 2764, - "nodeType": "ParameterList", - "parameters": [], - "src": "1139:0:22" - }, - "scope": 2797, - "src": "953:576:22", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2798, - "src": "459:1072:22" - } - ], - "src": "0:1532:22" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.945Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Proxy.json b/safe-contracts/build/contracts/Proxy.json deleted file mode 100644 index 0149b177..00000000 --- a/safe-contracts/build/contracts/Proxy.json +++ /dev/null @@ -1,1060 +0,0 @@ -{ - "contractName": "Proxy", - "abi": [ - { - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "constant": true, - "inputs": [], - "name": "implementation", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proxyType", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820aeb00387246db55c17338bd7ef9b5b2e6db9a2a81ab640f7b12e1488be97fe9f0029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820aeb00387246db55c17338bd7ef9b5b2e6db9a2a81ab640f7b12e1488be97fe9f0029", - "sourceMap": "190:1342:23:-;;;508:168;8:9:-1;5:2;;;30:1;27;20:12;5:2;508:168:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;593:1;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;190:1342;;;;;;", - "deployedSourceMap": "190:1342:23:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:23;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:23;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302:118;:::o", - "source": "pragma solidity 0.4.24;\n\n\n/// @title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n/// @author Stefan George - \ncontract Proxy {\n\n // masterCopy always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated.\n address masterCopy;\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n constructor(address _masterCopy)\n public\n {\n require(_masterCopy != 0, \"Invalid master copy address provided\");\n masterCopy = _masterCopy;\n }\n\n /// @dev Fallback function forwards all transactions and returns all received return data.\n function ()\n external\n payable\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas, masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0) { revert(0, returndatasize()) }\n return(0, returndatasize())\n }\n }\n\n function implementation()\n public\n view\n returns (address)\n {\n return masterCopy;\n }\n\n function proxyType()\n public\n pure\n returns (uint256)\n {\n return 2;\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "exportedSymbols": { - "Proxy": [ - 2840 - ] - }, - "id": 2841, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2799, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:23" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2840, - "linearizedBaseContracts": [ - 2840 - ], - "name": "Proxy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 2801, - "name": "masterCopy", - "nodeType": "VariableDeclaration", - "scope": 2840, - "src": "363:18:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2800, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "363:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 2817, - "nodeType": "Block", - "src": "560:116:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2807, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "578:11:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "593:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "578:16:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 2810, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "596:38:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - }, - "value": "Invalid master copy address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - } - ], - "id": 2806, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "570:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "570:65:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2812, - "nodeType": "ExpressionStatement", - "src": "570:65:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 2815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2813, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2801, - "src": "645:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2814, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "658:11:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "645:24:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2816, - "nodeType": "ExpressionStatement", - "src": "645:24:23" - } - ] - }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.", - "id": 2818, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2804, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2803, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 2818, - "src": "520:19:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2802, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "520:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "519:21:23" - }, - "payable": false, - "returnParameters": { - "id": 2805, - "nodeType": "ParameterList", - "parameters": [], - "src": "560:0:23" - }, - "scope": 2840, - "src": "508:168:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2822, - "nodeType": "Block", - "src": "826:470:23", - "statements": [ - { - "externalReferences": [], - "id": 2821, - "nodeType": "InlineAssembly", - "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas(), masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0)\n {\n revert(0, returndatasize())\n }\n return(0, returndatasize())\n}", - "src": "900:396:23" - } - ] - }, - "documentation": "@dev Fallback function forwards all transactions and returns all received return data.", - "id": 2823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2819, - "nodeType": "ParameterList", - "parameters": [], - "src": "786:2:23" - }, - "payable": true, - "returnParameters": { - "id": 2820, - "nodeType": "ParameterList", - "parameters": [], - "src": "826:0:23" - }, - "scope": 2840, - "src": "777:519:23", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2830, - "nodeType": "Block", - "src": "1386:34:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2828, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2801, - "src": "1403:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2827, - "id": 2829, - "nodeType": "Return", - "src": "1396:17:23" - } - ] - }, - "documentation": null, - "id": 2831, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "implementation", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2824, - "nodeType": "ParameterList", - "parameters": [], - "src": "1325:2:23" - }, - "payable": false, - "returnParameters": { - "id": 2827, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2826, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2831, - "src": "1373:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1373:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1372:9:23" - }, - "scope": 2840, - "src": "1302:118:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2838, - "nodeType": "Block", - "src": "1505:25:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1522:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "functionReturnParameters": 2835, - "id": 2837, - "nodeType": "Return", - "src": "1515:8:23" - } - ] - }, - "documentation": null, - "id": 2839, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "proxyType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2832, - "nodeType": "ParameterList", - "parameters": [], - "src": "1444:2:23" - }, - "payable": false, - "returnParameters": { - "id": 2835, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2834, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2839, - "src": "1492:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2833, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1492:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1491:9:23" - }, - "scope": 2840, - "src": "1426:104:23", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2841, - "src": "190:1342:23" - } - ], - "src": "0:1533:23" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "exportedSymbols": { - "Proxy": [ - 2840 - ] - }, - "id": 2841, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2799, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:23" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2840, - "linearizedBaseContracts": [ - 2840 - ], - "name": "Proxy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 2801, - "name": "masterCopy", - "nodeType": "VariableDeclaration", - "scope": 2840, - "src": "363:18:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2800, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "363:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 2817, - "nodeType": "Block", - "src": "560:116:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2807, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "578:11:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "593:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "578:16:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 2810, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "596:38:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - }, - "value": "Invalid master copy address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - } - ], - "id": 2806, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "570:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "570:65:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2812, - "nodeType": "ExpressionStatement", - "src": "570:65:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 2815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2813, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2801, - "src": "645:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2814, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "658:11:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "645:24:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2816, - "nodeType": "ExpressionStatement", - "src": "645:24:23" - } - ] - }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.", - "id": 2818, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2804, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2803, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 2818, - "src": "520:19:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2802, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "520:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "519:21:23" - }, - "payable": false, - "returnParameters": { - "id": 2805, - "nodeType": "ParameterList", - "parameters": [], - "src": "560:0:23" - }, - "scope": 2840, - "src": "508:168:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2822, - "nodeType": "Block", - "src": "826:470:23", - "statements": [ - { - "externalReferences": [], - "id": 2821, - "nodeType": "InlineAssembly", - "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas(), masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0)\n {\n revert(0, returndatasize())\n }\n return(0, returndatasize())\n}", - "src": "900:396:23" - } - ] - }, - "documentation": "@dev Fallback function forwards all transactions and returns all received return data.", - "id": 2823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2819, - "nodeType": "ParameterList", - "parameters": [], - "src": "786:2:23" - }, - "payable": true, - "returnParameters": { - "id": 2820, - "nodeType": "ParameterList", - "parameters": [], - "src": "826:0:23" - }, - "scope": 2840, - "src": "777:519:23", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2830, - "nodeType": "Block", - "src": "1386:34:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2828, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2801, - "src": "1403:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2827, - "id": 2829, - "nodeType": "Return", - "src": "1396:17:23" - } - ] - }, - "documentation": null, - "id": 2831, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "implementation", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2824, - "nodeType": "ParameterList", - "parameters": [], - "src": "1325:2:23" - }, - "payable": false, - "returnParameters": { - "id": 2827, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2826, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2831, - "src": "1373:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1373:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1372:9:23" - }, - "scope": 2840, - "src": "1302:118:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2838, - "nodeType": "Block", - "src": "1505:25:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1522:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "functionReturnParameters": 2835, - "id": 2837, - "nodeType": "Return", - "src": "1515:8:23" - } - ] - }, - "documentation": null, - "id": 2839, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "proxyType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2832, - "nodeType": "ParameterList", - "parameters": [], - "src": "1444:2:23" - }, - "payable": false, - "returnParameters": { - "id": 2835, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2834, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2839, - "src": "1492:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2833, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1492:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1491:9:23" - }, - "scope": 2840, - "src": "1426:104:23", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2841, - "src": "190:1342:23" - } - ], - "src": "0:1533:23" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.946Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/ProxyFactory.json b/safe-contracts/build/contracts/ProxyFactory.json deleted file mode 100644 index 5304fe52..00000000 --- a/safe-contracts/build/contracts/ProxyFactory.json +++ /dev/null @@ -1,1006 +0,0 @@ -{ - "contractName": "ProxyFactory", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "proxy", - "type": "address" - } - ], - "name": "ProxyCreation", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "masterCopy", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "createProxy", - "outputs": [ - { - "name": "proxy", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506104dd806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102a38061020f833901905600608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820aeb00387246db55c17338bd7ef9b5b2e6db9a2a81ab640f7b12e1488be97fe9f0029a165627a7a72305820c4ef6f2e193e86bdff50d07c71b811741acb9e772138cc86bd3a020d8cb1581d0029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102a38061020f833901905600608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820aeb00387246db55c17338bd7ef9b5b2e6db9a2a81ab640f7b12e1488be97fe9f0029a165627a7a72305820c4ef6f2e193e86bdff50d07c71b811741acb9e772138cc86bd3a020d8cb1581d0029", - "sourceMap": "225:725:24:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:725:24;;;;;;;", - "deployedSourceMap": "225:725:24:-;;;;;;;;;;;;;;;;;;;;;;;;532:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;532:416:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;617:11;662:10;652:21;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;652:21:24;644:29;;701:1;687:4;:11;:15;683:237;;;874:1;870;867;860:4;854:11;847:4;841;837:15;834:1;827:5;822:3;817:55;814:62;811:2;;;889:1;886;879:12;811:2;793:114;921:20;935:5;921:20;;;;;;;;;;;;;;;;;;;;;;532:416;;;;:::o;225:725::-;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./Proxy.sol\";\n\n\n/// @title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n/// @author Stefan George - \ncontract ProxyFactory {\n\n event ProxyCreation(Proxy proxy);\n\n /// @dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n /// @param masterCopy Address of master copy.\n /// @param data Payload for message call sent to new proxy contract.\n function createProxy(address masterCopy, bytes data)\n public\n returns (Proxy proxy)\n {\n proxy = new Proxy(masterCopy);\n if (data.length > 0)\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n if eq(call(gas, proxy, 0, add(data, 0x20), mload(data), 0, 0), 0) { revert(0, 0) }\n }\n emit ProxyCreation(proxy);\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", - "exportedSymbols": { - "ProxyFactory": [ - 2875 - ] - }, - "id": 2876, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2842, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:24" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "file": "./Proxy.sol", - "id": 2843, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 2841, - "src": "24:21:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 2840 - ], - "contractKind": "contract", - "documentation": "@title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2875, - "linearizedBaseContracts": [ - 2875 - ], - "name": "ProxyFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 2847, - "name": "ProxyCreation", - "nodeType": "EventDefinition", - "parameters": { - "id": 2846, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2845, - "indexed": false, - "name": "proxy", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "274:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - }, - "typeName": { - "contractScope": null, - "id": 2844, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "274:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "273:13:24" - }, - "src": "254:33:24" - }, - { - "body": { - "id": 2873, - "nodeType": "Block", - "src": "634:314:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2856, - "name": "proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2854, - "src": "644:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2859, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2849, - "src": "662:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "652:9:24", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$2840_$", - "typeString": "function (address) returns (contract Proxy)" - }, - "typeName": { - "contractScope": null, - "id": 2857, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "656:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "652:21:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - }, - "src": "644:29:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - }, - "id": 2862, - "nodeType": "ExpressionStatement", - "src": "644:29:24" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2863, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2851, - "src": "687:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "687:11:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2865, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "701:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "687:15:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2868, - "nodeType": "IfStatement", - "src": "683:237:24", - "trueBody": { - "externalReferences": [ - { - "data": { - "declaration": 2851, - "isOffset": false, - "isSlot": false, - "src": "860:4:24", - "valueSize": 1 - } - }, - { - "proxy": { - "declaration": 2854, - "isOffset": false, - "isSlot": false, - "src": "827:5:24", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2851, - "isOffset": false, - "isSlot": false, - "src": "841:4:24", - "valueSize": 1 - } - } - ], - "id": 2867, - "nodeType": "InlineAssembly", - "operations": "{\n if eq(call(gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0), 0)\n {\n revert(0, 0)\n }\n}", - "src": "784:136:24" - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2870, - "name": "proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2854, - "src": "935:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - ], - "id": 2869, - "name": "ProxyCreation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "921:13:24", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$2840_$returns$__$", - "typeString": "function (contract Proxy)" - } - }, - "id": 2871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "921:20:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2872, - "nodeType": "EmitStatement", - "src": "916:25:24" - } - ] - }, - "documentation": "@dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @param masterCopy Address of master copy.\n @param data Payload for message call sent to new proxy contract.", - "id": 2874, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createProxy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2852, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2849, - "name": "masterCopy", - "nodeType": "VariableDeclaration", - "scope": 2874, - "src": "553:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2848, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "553:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2851, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2874, - "src": "573:10:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2850, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "573:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "552:32:24" - }, - "payable": false, - "returnParameters": { - "id": 2855, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2854, - "name": "proxy", - "nodeType": "VariableDeclaration", - "scope": 2874, - "src": "617:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - }, - "typeName": { - "contractScope": null, - "id": 2853, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "617:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "616:13:24" - }, - "scope": 2875, - "src": "532:416:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2876, - "src": "225:725:24" - } - ], - "src": "0:951:24" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", - "exportedSymbols": { - "ProxyFactory": [ - 2875 - ] - }, - "id": 2876, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2842, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:24" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "file": "./Proxy.sol", - "id": 2843, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 2841, - "src": "24:21:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 2840 - ], - "contractKind": "contract", - "documentation": "@title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2875, - "linearizedBaseContracts": [ - 2875 - ], - "name": "ProxyFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 2847, - "name": "ProxyCreation", - "nodeType": "EventDefinition", - "parameters": { - "id": 2846, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2845, - "indexed": false, - "name": "proxy", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "274:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - }, - "typeName": { - "contractScope": null, - "id": 2844, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "274:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "273:13:24" - }, - "src": "254:33:24" - }, - { - "body": { - "id": 2873, - "nodeType": "Block", - "src": "634:314:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2856, - "name": "proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2854, - "src": "644:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2859, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2849, - "src": "662:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "652:9:24", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$2840_$", - "typeString": "function (address) returns (contract Proxy)" - }, - "typeName": { - "contractScope": null, - "id": 2857, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "656:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "652:21:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - }, - "src": "644:29:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - }, - "id": 2862, - "nodeType": "ExpressionStatement", - "src": "644:29:24" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2863, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2851, - "src": "687:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "687:11:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2865, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "701:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "687:15:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2868, - "nodeType": "IfStatement", - "src": "683:237:24", - "trueBody": { - "externalReferences": [ - { - "data": { - "declaration": 2851, - "isOffset": false, - "isSlot": false, - "src": "860:4:24", - "valueSize": 1 - } - }, - { - "proxy": { - "declaration": 2854, - "isOffset": false, - "isSlot": false, - "src": "827:5:24", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2851, - "isOffset": false, - "isSlot": false, - "src": "841:4:24", - "valueSize": 1 - } - } - ], - "id": 2867, - "nodeType": "InlineAssembly", - "operations": "{\n if eq(call(gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0), 0)\n {\n revert(0, 0)\n }\n}", - "src": "784:136:24" - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2870, - "name": "proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2854, - "src": "935:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - ], - "id": 2869, - "name": "ProxyCreation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "921:13:24", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$2840_$returns$__$", - "typeString": "function (contract Proxy)" - } - }, - "id": 2871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "921:20:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2872, - "nodeType": "EmitStatement", - "src": "916:25:24" - } - ] - }, - "documentation": "@dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @param masterCopy Address of master copy.\n @param data Payload for message call sent to new proxy contract.", - "id": 2874, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createProxy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2852, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2849, - "name": "masterCopy", - "nodeType": "VariableDeclaration", - "scope": 2874, - "src": "553:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2848, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "553:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2851, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2874, - "src": "573:10:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2850, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "573:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "552:32:24" - }, - "payable": false, - "returnParameters": { - "id": 2855, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2854, - "name": "proxy", - "nodeType": "VariableDeclaration", - "scope": 2874, - "src": "617:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - }, - "typeName": { - "contractScope": null, - "id": 2853, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2840, - "src": "617:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$2840", - "typeString": "contract Proxy" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "616:13:24" - }, - "scope": 2875, - "src": "532:416:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2876, - "src": "225:725:24" - } - ], - "src": "0:951:24" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0xc514d1c8f68faab2361892eb36b57c00e26f72b1", - "transactionHash": "0x8c31e4ba7f91582061f7f0cb58e696df5b79ec4b08871f430842eace5295ffa3" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0xcfeb869f69431e42cdb54a4f4f105c19c080a601", - "transactionHash": "0x460ef2a3ad8baae30860ec20978d3c7f8b2300eac8694d9a880a30096a69f42b" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.422Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/SecuredTokenTransfer.json b/safe-contracts/build/contracts/SecuredTokenTransfer.json deleted file mode 100644 index e1c2f779..00000000 --- a/safe-contracts/build/contracts/SecuredTokenTransfer.json +++ /dev/null @@ -1,783 +0,0 @@ -{ - "contractName": "SecuredTokenTransfer", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820ba27992b3b19c83b563b2634ef4e6e4b21311676e3d2a13b83cfd34834dfb8510029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820ba27992b3b19c83b563b2634ef4e6e4b21311676e3d2a13b83cfd34834dfb8510029", - "sourceMap": "133:1051:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;133:1051:10;;;;;;;", - "deployedSourceMap": "133:1051:10:-;;;;;", - "source": "pragma solidity 0.4.24;\n\n\n/// @title SecuredTokenTransfer - Secure token transfer\n/// @author Richard Meissner - \ncontract SecuredTokenTransfer {\n\n /// @dev Transfers a token and returns if it was a success\n /// @param token Token that should be transferred\n /// @param receiver Receiver to whom the token should be transferred\n /// @param amount The amount of tokens that should be transferred\n function transferToken (\n address token, \n address receiver,\n uint256 amount\n )\n internal\n returns (bool transferred)\n {\n bytes memory data = abi.encodeWithSignature(\"transfer(address,uint256)\", receiver, amount);\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let success := call(sub(gas, 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize)\n switch returndatasize \n case 0 { transferred := success }\n case 0x20 { transferred := iszero(or(iszero(success), iszero(mload(ptr)))) }\n default { transferred := 0 }\n }\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "exportedSymbols": { - "SecuredTokenTransfer": [ - 1718 - ] - }, - "id": 1719, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1695, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:10" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1718, - "linearizedBaseContracts": [ - 1718 - ], - "name": "SecuredTokenTransfer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1716, - "nodeType": "Block", - "src": "590:592:10", - "statements": [ - { - "assignments": [ - 1707 - ], - "declarations": [ - { - "constant": false, - "id": 1707, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1717, - "src": "600:17:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1706, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "600:5:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1714, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 1710, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "644:27:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - "value": "transfer(address,uint256)" - }, - { - "argumentTypes": null, - "id": 1711, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1699, - "src": "673:8:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1712, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1701, - "src": "683:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1708, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "620:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1709, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "620:23:10", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (string memory) pure returns (bytes memory)" - } - }, - "id": 1713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "620:70:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "600:90:10" - }, - { - "externalReferences": [ - { - "transferred": { - "declaration": 1704, - "isOffset": false, - "isSlot": false, - "src": "1061:11:10", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1707, - "isOffset": false, - "isSlot": false, - "src": "857:4:10", - "valueSize": 1 - } - }, - { - "token": { - "declaration": 1697, - "isOffset": false, - "isSlot": false, - "src": "824:5:10", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1707, - "isOffset": false, - "isSlot": false, - "src": "838:4:10", - "valueSize": 1 - } - }, - { - "transferred": { - "declaration": 1704, - "isOffset": false, - "isSlot": false, - "src": "1012:11:10", - "valueSize": 1 - } - }, - { - "transferred": { - "declaration": 1704, - "isOffset": false, - "isSlot": false, - "src": "1148:11:10", - "valueSize": 1 - } - } - ], - "id": 1715, - "nodeType": "InlineAssembly", - "operations": "{\n let success := call(sub(gas(), 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n switch returndatasize()\n case 0 {\n transferred := success\n }\n case 0x20 {\n transferred := iszero(or(iszero(success), iszero(mload(ptr))))\n }\n default {\n transferred := 0\n }\n}", - "src": "764:418:10" - } - ] - }, - "documentation": "@dev Transfers a token and returns if it was a success\n @param token Token that should be transferred\n @param receiver Receiver to whom the token should be transferred\n @param amount The amount of tokens that should be transferred", - "id": 1717, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1702, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1697, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 1717, - "src": "463:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1696, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "463:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1699, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 1717, - "src": "487:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1698, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "487:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1701, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1717, - "src": "513:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1700, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "513:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "453:80:10" - }, - "payable": false, - "returnParameters": { - "id": 1705, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1704, - "name": "transferred", - "nodeType": "VariableDeclaration", - "scope": 1717, - "src": "568:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1703, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "568:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "567:18:10" - }, - "scope": 1718, - "src": "430:752:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1719, - "src": "133:1051:10" - } - ], - "src": "0:1185:10" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "exportedSymbols": { - "SecuredTokenTransfer": [ - 1718 - ] - }, - "id": 1719, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1695, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:10" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1718, - "linearizedBaseContracts": [ - 1718 - ], - "name": "SecuredTokenTransfer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1716, - "nodeType": "Block", - "src": "590:592:10", - "statements": [ - { - "assignments": [ - 1707 - ], - "declarations": [ - { - "constant": false, - "id": 1707, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1717, - "src": "600:17:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1706, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "600:5:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1714, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 1710, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "644:27:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - "value": "transfer(address,uint256)" - }, - { - "argumentTypes": null, - "id": 1711, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1699, - "src": "673:8:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1712, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1701, - "src": "683:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1708, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "620:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1709, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "620:23:10", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (string memory) pure returns (bytes memory)" - } - }, - "id": 1713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "620:70:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "600:90:10" - }, - { - "externalReferences": [ - { - "transferred": { - "declaration": 1704, - "isOffset": false, - "isSlot": false, - "src": "1061:11:10", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1707, - "isOffset": false, - "isSlot": false, - "src": "857:4:10", - "valueSize": 1 - } - }, - { - "token": { - "declaration": 1697, - "isOffset": false, - "isSlot": false, - "src": "824:5:10", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1707, - "isOffset": false, - "isSlot": false, - "src": "838:4:10", - "valueSize": 1 - } - }, - { - "transferred": { - "declaration": 1704, - "isOffset": false, - "isSlot": false, - "src": "1012:11:10", - "valueSize": 1 - } - }, - { - "transferred": { - "declaration": 1704, - "isOffset": false, - "isSlot": false, - "src": "1148:11:10", - "valueSize": 1 - } - } - ], - "id": 1715, - "nodeType": "InlineAssembly", - "operations": "{\n let success := call(sub(gas(), 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n switch returndatasize()\n case 0 {\n transferred := success\n }\n case 0x20 {\n transferred := iszero(or(iszero(success), iszero(mload(ptr))))\n }\n default {\n transferred := 0\n }\n}", - "src": "764:418:10" - } - ] - }, - "documentation": "@dev Transfers a token and returns if it was a success\n @param token Token that should be transferred\n @param receiver Receiver to whom the token should be transferred\n @param amount The amount of tokens that should be transferred", - "id": 1717, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1702, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1697, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 1717, - "src": "463:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1696, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "463:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1699, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 1717, - "src": "487:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1698, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "487:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1701, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1717, - "src": "513:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1700, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "513:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "453:80:10" - }, - "payable": false, - "returnParameters": { - "id": 1705, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1704, - "name": "transferred", - "nodeType": "VariableDeclaration", - "scope": 1717, - "src": "568:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1703, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "568:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "567:18:10" - }, - "scope": 1718, - "src": "430:752:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1719, - "src": "133:1051:10" - } - ], - "src": "0:1185:10" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.937Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/SelfAuthorized.json b/safe-contracts/build/contracts/SelfAuthorized.json deleted file mode 100644 index daaf61e9..00000000 --- a/safe-contracts/build/contracts/SelfAuthorized.json +++ /dev/null @@ -1,479 +0,0 @@ -{ - "contractName": "SelfAuthorized", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a7230582089be6830aa63b2ce4480c1565e02c1d4e7d28bdf01f3f1cfbca1af4fc2fd06f50029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a7230582089be6830aa63b2ce4480c1565e02c1d4e7d28bdf01f3f1cfbca1af4fc2fd06f50029", - "sourceMap": "152:166:11:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;152:166:11;;;;;;;", - "deployedSourceMap": "152:166:11:-;;;;;", - "source": "pragma solidity 0.4.24;\n\n\n/// @title SelfAuthorized - authorizes current contract to perform actions\n/// @author Richard Meissner - \ncontract SelfAuthorized {\n modifier authorized() {\n require(msg.sender == address(this), \"Method can only be called from this contract\");\n _;\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "exportedSymbols": { - "SelfAuthorized": [ - 1735 - ] - }, - "id": 1736, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1720, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:11" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1735, - "linearizedBaseContracts": [ - 1735 - ], - "name": "SelfAuthorized", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1733, - "nodeType": "Block", - "src": "204:112:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1723, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "222:3:11", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "222:10:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1726, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4028, - "src": "244:4:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", - "typeString": "contract SelfAuthorized" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", - "typeString": "contract SelfAuthorized" - } - ], - "id": 1725, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "236:7:11", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "236:13:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "222:27:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374", - "id": 1729, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "251:46:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733", - "typeString": "literal_string \"Method can only be called from this contract\"" - }, - "value": "Method can only be called from this contract" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733", - "typeString": "literal_string \"Method can only be called from this contract\"" - } - ], - "id": 1722, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "214:7:11", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "214:84:11", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1731, - "nodeType": "ExpressionStatement", - "src": "214:84:11" - }, - { - "id": 1732, - "nodeType": "PlaceholderStatement", - "src": "308:1:11" - } - ] - }, - "documentation": null, - "id": 1734, - "name": "authorized", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1721, - "nodeType": "ParameterList", - "parameters": [], - "src": "201:2:11" - }, - "src": "182:134:11", - "visibility": "internal" - } - ], - "scope": 1736, - "src": "152:166:11" - } - ], - "src": "0:319:11" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "exportedSymbols": { - "SelfAuthorized": [ - 1735 - ] - }, - "id": 1736, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1720, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:11" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1735, - "linearizedBaseContracts": [ - 1735 - ], - "name": "SelfAuthorized", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1733, - "nodeType": "Block", - "src": "204:112:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1723, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "222:3:11", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "222:10:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1726, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4028, - "src": "244:4:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", - "typeString": "contract SelfAuthorized" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SelfAuthorized_$1735", - "typeString": "contract SelfAuthorized" - } - ], - "id": 1725, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "236:7:11", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "236:13:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "222:27:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374", - "id": 1729, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "251:46:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733", - "typeString": "literal_string \"Method can only be called from this contract\"" - }, - "value": "Method can only be called from this contract" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733", - "typeString": "literal_string \"Method can only be called from this contract\"" - } - ], - "id": 1722, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "214:7:11", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "214:84:11", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1731, - "nodeType": "ExpressionStatement", - "src": "214:84:11" - }, - { - "id": 1732, - "nodeType": "PlaceholderStatement", - "src": "308:1:11" - } - ] - }, - "documentation": null, - "id": 1734, - "name": "authorized", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1721, - "nodeType": "ParameterList", - "parameters": [], - "src": "201:2:11" - }, - "src": "182:134:11", - "visibility": "internal" - } - ], - "scope": 1736, - "src": "152:166:11" - } - ], - "src": "0:319:11" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.938Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/SignatureDecoder.json b/safe-contracts/build/contracts/SignatureDecoder.json deleted file mode 100644 index a48372cf..00000000 --- a/safe-contracts/build/contracts/SignatureDecoder.json +++ /dev/null @@ -1,1561 +0,0 @@ -{ - "contractName": "SignatureDecoder", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820d9ee3caf094740365f7393d3f6ba692eb56aac36a91a228ffd64563a0a424d7e0029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820d9ee3caf094740365f7393d3f6ba692eb56aac36a91a228ffd64563a0a424d7e0029", - "sourceMap": "226:1692:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;226:1692:12;;;;;;;", - "deployedSourceMap": "226:1692:12:-;;;;;", - "source": "pragma solidity 0.4.24;\n\n\n/// @title SignatureDecoder - Decodes signatures that a encoded as bytes\n/// @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n/// @author Richard Meissner - \ncontract SignatureDecoder {\n \n /// @dev Recovers address who signed the message \n /// @param messageHash operation ethereum signed message hash\n /// @param messageSignature message `txHash` signature\n /// @param pos which signature to read\n function recoverKey (\n bytes32 messageHash, \n bytes messageSignature,\n uint256 pos\n )\n internal\n pure\n returns (address) \n {\n uint8 v;\n bytes32 r;\n bytes32 s;\n (v, r, s) = signatureSplit(messageSignature, pos);\n return ecrecover(messageHash, v, r, s);\n }\n\n /// @dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`\n /// @param pos which signature to read\n /// @param signatures concatenated rsv signatures\n function signatureSplit(bytes signatures, uint256 pos)\n internal\n pure\n returns (uint8 v, bytes32 r, bytes32 s)\n {\n // The signature format is a compact form of:\n // {bytes32 r}{bytes32 s}{uint8 v}\n // Compact means, uint8 is not padded to 32 bytes.\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n // Here we are loading the last 32 bytes, including 31 bytes\n // of 's'. There is no 'mload8' to do this.\n //\n // 'byte' is not working due to the Solidity parser, so lets\n // use the second best option, 'and'\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n }\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "exportedSymbols": { - "SignatureDecoder": [ - 1791 - ] - }, - "id": 1792, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1737, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:12" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title SignatureDecoder - Decodes signatures that a encoded as bytes\n @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1791, - "linearizedBaseContracts": [ - 1791 - ], - "name": "SignatureDecoder", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1774, - "nodeType": "Block", - "src": "656:169:12", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1749, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "666:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1748, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "666:5:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1750, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "666:7:12" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1752, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "683:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1751, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "683:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1753, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "683:9:12" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1755, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "702:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1754, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "702:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1756, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "702:9:12" - }, - { - "expression": { - "argumentTypes": null, - "id": 1765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 1757, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1749, - "src": "722:1:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 1758, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1752, - "src": "725:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1759, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "728:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 1760, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "721:9:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1762, - "name": "messageSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "748:16:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 1763, - "name": "pos", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1743, - "src": "766:3:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1761, - "name": "signatureSplit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "733:14:12", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" - } - }, - "id": 1764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "733:37:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "src": "721:49:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1766, - "nodeType": "ExpressionStatement", - "src": "721:49:12" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1768, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1739, - "src": "797:11:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1769, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1749, - "src": "810:1:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 1770, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1752, - "src": "813:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1771, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "816:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1767, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4007, - "src": "787:9:12", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 1772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "787:31:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1747, - "id": 1773, - "nodeType": "Return", - "src": "780:38:12" - } - ] - }, - "documentation": "@dev Recovers address who signed the message \n @param messageHash operation ethereum signed message hash\n @param messageSignature message `txHash` signature\n @param pos which signature to read", - "id": 1775, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "recoverKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1744, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1739, - "name": "messageHash", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "515:19:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1738, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "515:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1741, - "name": "messageSignature", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "545:22:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1740, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "545:5:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1743, - "name": "pos", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "577:11:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1742, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "577:7:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "505:89:12" - }, - "payable": false, - "returnParameters": { - "id": 1747, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1746, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "642:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1745, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "642:7:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "641:9:12" - }, - "scope": 1791, - "src": "485:340:12", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1789, - "nodeType": "Block", - "src": "1139:777:12", - "statements": [ - { - "externalReferences": [ - { - "r": { - "declaration": 1784, - "isOffset": false, - "isSlot": false, - "src": "1441:1:12", - "valueSize": 1 - } - }, - { - "pos": { - "declaration": 1779, - "isOffset": false, - "isSlot": false, - "src": "1424:3:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1777, - "isOffset": false, - "isSlot": false, - "src": "1456:10:12", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 1786, - "isOffset": false, - "isSlot": false, - "src": "1506:1:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1777, - "isOffset": false, - "isSlot": false, - "src": "1521:10:12", - "valueSize": 1 - } - }, - { - "v": { - "declaration": 1782, - "isOffset": false, - "isSlot": false, - "src": "1837:1:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1777, - "isOffset": false, - "isSlot": false, - "src": "1856:10:12", - "valueSize": 1 - } - } - ], - "id": 1788, - "nodeType": "InlineAssembly", - "operations": "{\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n}", - "src": "1371:545:12" - } - ] - }, - "documentation": "@dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`\n @param pos which signature to read\n @param signatures concatenated rsv signatures", - "id": 1790, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "signatureSplit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1780, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1777, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1026:16:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1776, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1026:5:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1779, - "name": "pos", - "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1044:11:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1778, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1044:7:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1025:31:12" - }, - "payable": false, - "returnParameters": { - "id": 1787, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1782, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1104:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1781, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1104:5:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1784, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1113:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1783, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1113:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1786, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1124:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1785, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1124:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1103:31:12" - }, - "scope": 1791, - "src": "1002:914:12", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1792, - "src": "226:1692:12" - } - ], - "src": "0:1919:12" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "exportedSymbols": { - "SignatureDecoder": [ - 1791 - ] - }, - "id": 1792, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1737, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:12" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title SignatureDecoder - Decodes signatures that a encoded as bytes\n @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1791, - "linearizedBaseContracts": [ - 1791 - ], - "name": "SignatureDecoder", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1774, - "nodeType": "Block", - "src": "656:169:12", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1749, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "666:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1748, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "666:5:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1750, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "666:7:12" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1752, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "683:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1751, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "683:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1753, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "683:9:12" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1755, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "702:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1754, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "702:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1756, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "702:9:12" - }, - { - "expression": { - "argumentTypes": null, - "id": 1765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 1757, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1749, - "src": "722:1:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 1758, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1752, - "src": "725:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1759, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "728:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 1760, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "721:9:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1762, - "name": "messageSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "748:16:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 1763, - "name": "pos", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1743, - "src": "766:3:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1761, - "name": "signatureSplit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "733:14:12", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" - } - }, - "id": 1764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "733:37:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "src": "721:49:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1766, - "nodeType": "ExpressionStatement", - "src": "721:49:12" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1768, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1739, - "src": "797:11:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1769, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1749, - "src": "810:1:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 1770, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1752, - "src": "813:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1771, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "816:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1767, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4007, - "src": "787:9:12", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 1772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "787:31:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1747, - "id": 1773, - "nodeType": "Return", - "src": "780:38:12" - } - ] - }, - "documentation": "@dev Recovers address who signed the message \n @param messageHash operation ethereum signed message hash\n @param messageSignature message `txHash` signature\n @param pos which signature to read", - "id": 1775, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "recoverKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1744, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1739, - "name": "messageHash", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "515:19:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1738, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "515:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1741, - "name": "messageSignature", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "545:22:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1740, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "545:5:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1743, - "name": "pos", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "577:11:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1742, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "577:7:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "505:89:12" - }, - "payable": false, - "returnParameters": { - "id": 1747, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1746, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "642:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1745, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "642:7:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "641:9:12" - }, - "scope": 1791, - "src": "485:340:12", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1789, - "nodeType": "Block", - "src": "1139:777:12", - "statements": [ - { - "externalReferences": [ - { - "r": { - "declaration": 1784, - "isOffset": false, - "isSlot": false, - "src": "1441:1:12", - "valueSize": 1 - } - }, - { - "pos": { - "declaration": 1779, - "isOffset": false, - "isSlot": false, - "src": "1424:3:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1777, - "isOffset": false, - "isSlot": false, - "src": "1456:10:12", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 1786, - "isOffset": false, - "isSlot": false, - "src": "1506:1:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1777, - "isOffset": false, - "isSlot": false, - "src": "1521:10:12", - "valueSize": 1 - } - }, - { - "v": { - "declaration": 1782, - "isOffset": false, - "isSlot": false, - "src": "1837:1:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1777, - "isOffset": false, - "isSlot": false, - "src": "1856:10:12", - "valueSize": 1 - } - } - ], - "id": 1788, - "nodeType": "InlineAssembly", - "operations": "{\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n}", - "src": "1371:545:12" - } - ] - }, - "documentation": "@dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`\n @param pos which signature to read\n @param signatures concatenated rsv signatures", - "id": 1790, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "signatureSplit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1780, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1777, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1026:16:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1776, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1026:5:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1779, - "name": "pos", - "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1044:11:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1778, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1044:7:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1025:31:12" - }, - "payable": false, - "returnParameters": { - "id": 1787, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1782, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1104:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1781, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1104:5:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1784, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1113:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1783, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1113:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1786, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 1790, - "src": "1124:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1785, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1124:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1103:31:12" - }, - "scope": 1791, - "src": "1002:914:12", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1792, - "src": "226:1692:12" - } - ], - "src": "0:1919:12" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.938Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/SocialRecoveryModule.json b/safe-contracts/build/contracts/SocialRecoveryModule.json deleted file mode 100644 index 01eb749e..00000000 --- a/safe-contracts/build/contracts/SocialRecoveryModule.json +++ /dev/null @@ -1,7305 +0,0 @@ -{ - "contractName": "SocialRecoveryModule", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "threshold", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "manager", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "isFriend", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - } - ], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - }, - { - "name": "", - "type": "address" - } - ], - "name": "isConfirmed", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "friends", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "isExecuted", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_friends", - "type": "address[]" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "dataHash", - "type": "bytes32" - } - ], - "name": "confirmTransaction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "oldOwner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" - } - ], - "name": "recoverAccess", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "dataHash", - "type": "bytes32" - } - ], - "name": "isConfirmedByRequiredFriends", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "data", - "type": "bytes" - } - ], - "name": "getDataHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50611790806100206000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a7230582056674b0a048c9eb59cf0ed9e3af92ae17e0c455580386c7ab34db9e8f16583b80029", - "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a7230582056674b0a048c9eb59cf0ed9e3af92ae17e0c455580386c7ab34db9e8f16583b80029", - "sourceMap": "328:3660:18:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;328:3660:18;;;;;;;", - "deployedSourceMap": "328:3660:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;482:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;482:24:18;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;1240:640:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1240:640:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;607:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;607:41:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:625;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2536:625:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1993:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1993:210:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3322:405:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3322:405:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;375:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;375:54:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;375:54:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3856:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3856:130:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;851:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;851:65:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;512:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;512:24:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;716:43:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;435:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;435:40:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;435:40:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;482:24;;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;1240:640:18:-;1537:9;1592:14;1346:8;:15;1332:10;:29;;1324:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1435:1;1421:10;:15;;1413:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1478:12;:10;:12::i;:::-;1549:1;1537:13;;1532:282;1556:8;:15;1552:1;:19;1532:282;;;1609:8;1618:1;1609:11;;;;;;;;;;;;;;;;;;1592:28;;1652:1;1642:6;:11;;;;1634:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:8;:16;1721:6;1712:16;;;;;;;;;;;;;;;;;;;;;;;;;1711:17;1703:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1799:4;1780:8;:16;1789:6;1780:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1573:3;;;;;;;1532:282;;;1833:8;1823:7;:18;;;;;;;;;;;;:::i;:::-;;1863:10;1851:9;:22;;;;1240:640;;;;:::o;607:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;2536:625::-;2662:17;2784:16;963:8;:20;972:10;963:20;;;;;;;;;;;;;;;;;;;;;;;;;955:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2744:9;2755:8;2765;2682:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2682:92:18;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2682:92:18;2662:112;;2803:17;2815:4;2803:11;:17::i;:::-;2784:36;;2839:10;:20;2850:8;2839:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2838:21;2830:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2907:38;2936:8;2907:28;:38::i;:::-;2899:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:4;2997:10;:20;3008:8;2997:20;;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3042:7;;;;;;;;;;;:33;;;3084:7;;;;;;;;;;;3094:1;3097:4;3103:19;3042:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3042:81:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3042:81:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3042:81:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3042:81:18;;;;;;;;;;;;;;;;3034:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:625;;;;;:::o;1993:210::-;963:8;:20;972:10;963:20;;;;;;;;;;;;;;;;;;;;;;;;;955:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2096:10;:20;2107:8;2096:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2095:21;2087:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2192:4;2156:11;:21;2168:8;2156:21;;;;;;;;;;;;;;;;;:33;2178:10;2156:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1993:210;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;3322:405:18:-;3423:4;3443:25;3483:9;3495:1;3483:13;;3478:221;3502:7;:14;;;;3498:1;:18;3478:221;;;3541:11;:21;3553:8;3541:21;;;;;;;;;;;;;;;;;:33;3563:7;3571:1;3563:10;;;;;;;;;;;;;;;;;;;;;;;;;;;3541:33;;;;;;;;;;;;;;;;;;;;;;;;;3537:74;;;3592:19;;;;;;;3537:74;3650:9;;3629:17;:30;3625:63;;;3684:4;3677:11;;;;3625:63;3518:3;;;;;;;3478:221;;;3715:5;3708:12;;3322:405;;;;;;:::o;375:54::-;;;;;;;;;;;;;;;;;;;;:::o;3856:130::-;3934:7;3974:4;3964:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3964:15:18;;;;;;;;;;;;;;;;3957:22;;3856:130;;;:::o;851:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;512:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;716:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;435:40::-;;;;;;;;;;;;;;;;;;;;:::o;442:300:4:-;656:1;644:7;;;;;;;;;;;636:21;;;628:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;724:10;700:7;;:35;;;;;;;;;;;;;;;;;;442:300::o;328:3660:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"../base/Module.sol\";\nimport \"../base/ModuleManager.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/Enum.sol\";\n\n\n/// @title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n/// @author Stefan George - \ncontract SocialRecoveryModule is Module {\n\n string public constant NAME = \"Social Recovery Module\";\n string public constant VERSION = \"0.0.2\";\n\n uint256 public threshold;\n address[] public friends;\n\n // isFriend mapping maps friend's address to friend status.\n mapping (address => bool) public isFriend;\n // isExecuted mapping maps data hash to execution status.\n mapping (bytes32 => bool) public isExecuted;\n // isConfirmed mapping maps data hash to friend's address to confirmation status.\n mapping (bytes32 => mapping (address => bool)) public isConfirmed;\n\n modifier onlyFriend() {\n require(isFriend[msg.sender], \"Method can only be called by a friend\");\n _;\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _friends List of friends' addresses.\n /// @param _threshold Required number of friends to confirm replacement.\n function setup(address[] _friends, uint256 _threshold)\n public\n {\n require(_threshold <= _friends.length, \"Threshold cannot exceed friends count\");\n require(_threshold >= 2, \"At least 2 friends required\");\n setManager();\n // Set allowed friends.\n for (uint256 i = 0; i < _friends.length; i++) {\n address friend = _friends[i];\n require(friend != 0, \"Invalid friend address provided\");\n require(!isFriend[friend], \"Duplicate friend address provided\");\n isFriend[friend] = true;\n }\n friends = _friends;\n threshold = _threshold;\n }\n\n /// @dev Allows a friend to confirm a Safe transaction.\n /// @param dataHash Safe transaction hash.\n function confirmTransaction(bytes32 dataHash)\n public\n onlyFriend\n {\n require(!isExecuted[dataHash], \"Recovery already executed\");\n isConfirmed[dataHash][msg.sender] = true;\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n /// @return Returns if transaction can be executed.\n function recoverAccess(address prevOwner, address oldOwner, address newOwner)\n public\n onlyFriend\n {\n bytes memory data = abi.encodeWithSignature(\"swapOwner(address,address,address)\", prevOwner, oldOwner, newOwner);\n bytes32 dataHash = getDataHash(data);\n require(!isExecuted[dataHash], \"Recovery already executed\");\n require(isConfirmedByRequiredFriends(dataHash), \"Recovery has not enough confirmations\");\n isExecuted[dataHash] = true;\n require(manager.execTransactionFromModule(address(manager), 0, data, Enum.Operation.Call), \"Could not execute recovery\");\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param dataHash Data hash.\n /// @return Confirmation status.\n function isConfirmedByRequiredFriends(bytes32 dataHash)\n public\n view\n returns (bool)\n {\n uint256 confirmationCount;\n for (uint256 i = 0; i < friends.length; i++) {\n if (isConfirmed[dataHash][friends[i]])\n confirmationCount++;\n if (confirmationCount == threshold)\n return true;\n }\n return false;\n }\n\n /// @dev Returns hash of data encoding owner replacement.\n /// @param data Data payload.\n /// @return Data hash.\n function getDataHash(bytes data)\n public\n pure\n returns (bytes32)\n {\n return keccak256(data);\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", - "exportedSymbols": { - "SocialRecoveryModule": [ - 2375 - ] - }, - "id": 2376, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2112, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:18" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2113, - "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 936, - "src": "24:28:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "../base/ModuleManager.sol", - "id": 2114, - "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 1213, - "src": "53:35:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2115, - "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 1653, - "src": "89:34:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 2116, - "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 1660, - "src": "124:28:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2117, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "361:6:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "id": 2118, - "nodeType": "InheritanceSpecifier", - "src": "361:6:18" - } - ], - "contractDependencies": [ - 935, - 1693, - 1735 - ], - "contractKind": "contract", - "documentation": "@title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2375, - "linearizedBaseContracts": [ - 2375, - 935, - 1693, - 1735 - ], - "name": "SocialRecoveryModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2121, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "375:54:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2119, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "375:6:18", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 2120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "405:24:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230", - "typeString": "literal_string \"Social Recovery Module\"" - }, - "value": "Social Recovery Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2124, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "435:40:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2122, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "435:6:18", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e32", - "id": 2123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "468:7:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" - }, - "value": "0.0.2" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2126, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "482:24:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2125, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "482:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2129, - "name": "friends", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "512:24:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2127, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "512:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2128, - "length": null, - "nodeType": "ArrayTypeName", - "src": "512:9:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2133, - "name": "isFriend", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "607:41:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 2132, - "keyType": { - "id": 2130, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "616:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "607:25:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 2131, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "627:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2137, - "name": "isExecuted", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "716:43:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2136, - "keyType": { - "id": 2134, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "725:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "716:25:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2135, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "736:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2143, - "name": "isConfirmed", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "851:65:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - }, - "typeName": { - "id": 2142, - "keyType": { - "id": 2138, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "860:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "851:46:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - }, - "valueType": { - "id": 2141, - "keyType": { - "id": 2139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "880:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "871:25:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 2140, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "891:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2154, - "nodeType": "Block", - "src": "945:98:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2146, - "name": "isFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "963:8:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2149, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2147, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "972:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "972:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "963:20:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64", - "id": 2150, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "985:39:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", - "typeString": "literal_string \"Method can only be called by a friend\"" - }, - "value": "Method can only be called by a friend" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", - "typeString": "literal_string \"Method can only be called by a friend\"" - } - ], - "id": 2145, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "955:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "955:70:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2152, - "nodeType": "ExpressionStatement", - "src": "955:70:18" - }, - { - "id": 2153, - "nodeType": "PlaceholderStatement", - "src": "1035:1:18" - } - ] - }, - "documentation": null, - "id": 2155, - "name": "onlyFriend", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2144, - "nodeType": "ParameterList", - "parameters": [], - "src": "942:2:18" - }, - "src": "923:120:18", - "visibility": "internal" - }, - { - "body": { - "id": 2229, - "nodeType": "Block", - "src": "1314:566:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2164, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "1332:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2165, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1346:8:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1346:15:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1332:29:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74", - "id": 2168, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1363:39:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", - "typeString": "literal_string \"Threshold cannot exceed friends count\"" - }, - "value": "Threshold cannot exceed friends count" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", - "typeString": "literal_string \"Threshold cannot exceed friends count\"" - } - ], - "id": 2163, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1324:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1324:79:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2170, - "nodeType": "ExpressionStatement", - "src": "1324:79:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2172, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "1421:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1435:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "1421:15:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4174206c65617374203220667269656e6473207265717569726564", - "id": 2175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1438:29:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", - "typeString": "literal_string \"At least 2 friends required\"" - }, - "value": "At least 2 friends required" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", - "typeString": "literal_string \"At least 2 friends required\"" - } - ], - "id": 2171, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1413:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1413:55:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2177, - "nodeType": "ExpressionStatement", - "src": "1413:55:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2178, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1478:10:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1478:12:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2180, - "nodeType": "ExpressionStatement", - "src": "1478:12:18" - }, - { - "body": { - "id": 2219, - "nodeType": "Block", - "src": "1578:236:18", - "statements": [ - { - "assignments": [ - 2193 - ], - "declarations": [ - { - "constant": false, - "id": 2193, - "name": "friend", - "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1592:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2192, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1592:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2197, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2194, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1609:8:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2196, - "indexExpression": { - "argumentTypes": null, - "id": 2195, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "1618:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1609:11:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1592:28:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2199, - "name": "friend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "1642:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1652:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1642:11:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420667269656e6420616464726573732070726f7669646564", - "id": 2202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1655:33:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", - "typeString": "literal_string \"Invalid friend address provided\"" - }, - "value": "Invalid friend address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", - "typeString": "literal_string \"Invalid friend address provided\"" - } - ], - "id": 2198, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1634:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1634:55:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2204, - "nodeType": "ExpressionStatement", - "src": "1634:55:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1711:17:18", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2206, - "name": "isFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "1712:8:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2208, - "indexExpression": { - "argumentTypes": null, - "id": 2207, - "name": "friend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "1721:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1712:16:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4475706c696361746520667269656e6420616464726573732070726f7669646564", - "id": 2210, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1730:35:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", - "typeString": "literal_string \"Duplicate friend address provided\"" - }, - "value": "Duplicate friend address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", - "typeString": "literal_string \"Duplicate friend address provided\"" - } - ], - "id": 2205, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1703:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1703:63:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2212, - "nodeType": "ExpressionStatement", - "src": "1703:63:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2213, - "name": "isFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "1780:8:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2215, - "indexExpression": { - "argumentTypes": null, - "id": 2214, - "name": "friend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "1789:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1780:16:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1799:4:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1780:23:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2218, - "nodeType": "ExpressionStatement", - "src": "1780:23:18" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2185, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "1552:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2186, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1556:8:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1556:15:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1552:19:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2220, - "initializationExpression": { - "assignments": [ - 2182 - ], - "declarations": [ - { - "constant": false, - "id": 2182, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1537:9:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1537:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2184, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1549:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1537:13:18" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1573:3:18", - "subExpression": { - "argumentTypes": null, - "id": 2189, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "1573:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2191, - "nodeType": "ExpressionStatement", - "src": "1573:3:18" - }, - "nodeType": "ForStatement", - "src": "1532:282:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2221, - "name": "friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "1823:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2222, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1833:8:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "1823:18:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2224, - "nodeType": "ExpressionStatement", - "src": "1823:18:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2225, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2126, - "src": "1851:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2226, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "1863:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1851:22:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2228, - "nodeType": "ExpressionStatement", - "src": "1851:22:18" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _friends List of friends' addresses.\n @param _threshold Required number of friends to confirm replacement.", - "id": 2230, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2161, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2158, - "name": "_friends", - "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1255:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2156, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1255:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2157, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1255:9:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2160, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1275:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2159, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1275:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1254:40:18" - }, - "payable": false, - "returnParameters": { - "id": 2162, - "nodeType": "ParameterList", - "parameters": [], - "src": "1314:0:18" - }, - "scope": 2375, - "src": "1240:640:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2254, - "nodeType": "Block", - "src": "2077:126:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2095:21:18", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2238, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "2096:10:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 2240, - "indexExpression": { - "argumentTypes": null, - "id": 2239, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2107:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2096:20:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2118:27:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - }, - "value": "Recovery already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - } - ], - "id": 2237, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2087:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2087:59:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2244, - "nodeType": "ExpressionStatement", - "src": "2087:59:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2245, - "name": "isConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "2156:11:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 2249, - "indexExpression": { - "argumentTypes": null, - "id": 2246, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2168:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2156:21:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2250, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "2178:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2178:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2156:33:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2251, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2192:4:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2156:40:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2253, - "nodeType": "ExpressionStatement", - "src": "2156:40:18" - } - ] - }, - "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 2255, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2235, - "modifierName": { - "argumentTypes": null, - "id": 2234, - "name": "onlyFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2155, - "src": "2062:10:18", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2062:10:18" - } - ], - "name": "confirmTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2233, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2232, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 2255, - "src": "2021:16:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2231, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2021:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2020:18:18" - }, - "payable": false, - "returnParameters": { - "id": 2236, - "nodeType": "ParameterList", - "parameters": [], - "src": "2077:0:18" - }, - "scope": 2375, - "src": "1993:210:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2318, - "nodeType": "Block", - "src": "2652:509:18", - "statements": [ - { - "assignments": [ - 2267 - ], - "declarations": [ - { - "constant": false, - "id": 2267, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2662:17:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2266, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2662:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2275, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", - "id": 2270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2706:36:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", - "typeString": "literal_string \"swapOwner(address,address,address)\"" - }, - "value": "swapOwner(address,address,address)" - }, - { - "argumentTypes": null, - "id": 2271, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2257, - "src": "2744:9:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2272, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2259, - "src": "2755:8:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2273, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2261, - "src": "2765:8:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", - "typeString": "literal_string \"swapOwner(address,address,address)\"" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2268, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "2682:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2682:23:18", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (string memory) pure returns (bytes memory)" - } - }, - "id": 2274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2682:92:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2662:112:18" - }, - { - "assignments": [ - 2277 - ], - "declarations": [ - { - "constant": false, - "id": 2277, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2784:16:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2276, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2784:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2281, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2279, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2267, - "src": "2815:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2278, - "name": "getDataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2374, - "src": "2803:11:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2803:17:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2784:36:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2838:21:18", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2283, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "2839:10:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 2285, - "indexExpression": { - "argumentTypes": null, - "id": 2284, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "2850:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2839:20:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2861:27:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - }, - "value": "Recovery already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - } - ], - "id": 2282, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2830:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2830:59:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2289, - "nodeType": "ExpressionStatement", - "src": "2830:59:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2292, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "2936:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2291, - "name": "isConfirmedByRequiredFriends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2362, - "src": "2907:28:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view returns (bool)" - } - }, - "id": 2293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2907:38:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 2294, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2947:39:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", - "typeString": "literal_string \"Recovery has not enough confirmations\"" - }, - "value": "Recovery has not enough confirmations" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", - "typeString": "literal_string \"Recovery has not enough confirmations\"" - } - ], - "id": 2290, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2899:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2899:88:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2296, - "nodeType": "ExpressionStatement", - "src": "2899:88:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2297, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "2997:10:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 2299, - "indexExpression": { - "argumentTypes": null, - "id": 2298, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "3008:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2997:20:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2300, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3020:4:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2997:27:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2302, - "nodeType": "ExpressionStatement", - "src": "2997:27:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2307, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "3084:7:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 2306, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3076:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3076:16:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3094:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 2310, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2267, - "src": "3097:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2311, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "3103:4:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "3103:14:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2313, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3103:19:18", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2304, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "3042:7:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 2305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "3042:33:18", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3042:81:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465207265636f76657279", - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3125:28:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", - "typeString": "literal_string \"Could not execute recovery\"" - }, - "value": "Could not execute recovery" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", - "typeString": "literal_string \"Could not execute recovery\"" - } - ], - "id": 2303, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "3034:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3034:120:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2317, - "nodeType": "ExpressionStatement", - "src": "3034:120:18" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.\n @return Returns if transaction can be executed.", - "id": 2319, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2264, - "modifierName": { - "argumentTypes": null, - "id": 2263, - "name": "onlyFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2155, - "src": "2637:10:18", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2637:10:18" - } - ], - "name": "recoverAccess", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2262, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2257, - "name": "prevOwner", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2559:17:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2256, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2559:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2259, - "name": "oldOwner", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2578:16:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2258, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2578:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2261, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2596:16:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2260, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2596:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2558:55:18" - }, - "payable": false, - "returnParameters": { - "id": 2265, - "nodeType": "ParameterList", - "parameters": [], - "src": "2652:0:18" - }, - "scope": 2375, - "src": "2536:625:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2361, - "nodeType": "Block", - "src": "3433:294:18", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2327, - "name": "confirmationCount", - "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3443:25:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2326, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3443:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2328, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "3443:25:18" - }, - { - "body": { - "id": 2357, - "nodeType": "Block", - "src": "3523:176:18", - "statements": [ - { - "condition": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2340, - "name": "isConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "3541:11:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 2342, - "indexExpression": { - "argumentTypes": null, - "id": 2341, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "3553:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3541:21:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2346, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2343, - "name": "friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "3563:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2345, - "indexExpression": { - "argumentTypes": null, - "id": 2344, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2330, - "src": "3571:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3563:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3541:33:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2350, - "nodeType": "IfStatement", - "src": "3537:74:18", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 2348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3592:19:18", - "subExpression": { - "argumentTypes": null, - "id": 2347, - "name": "confirmationCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "3592:17:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2349, - "nodeType": "ExpressionStatement", - "src": "3592:19:18" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2351, - "name": "confirmationCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "3629:17:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2352, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2126, - "src": "3650:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3629:30:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2356, - "nodeType": "IfStatement", - "src": "3625:63:18", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2354, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3684:4:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2325, - "id": 2355, - "nodeType": "Return", - "src": "3677:11:18" - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2333, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2330, - "src": "3498:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2334, - "name": "friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "3502:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2335, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3502:14:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3498:18:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2358, - "initializationExpression": { - "assignments": [ - 2330 - ], - "declarations": [ - { - "constant": false, - "id": 2330, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3483:9:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2329, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3483:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2332, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2331, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3495:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3483:13:18" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3518:3:18", - "subExpression": { - "argumentTypes": null, - "id": 2337, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2330, - "src": "3518:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2339, - "nodeType": "ExpressionStatement", - "src": "3518:3:18" - }, - "nodeType": "ForStatement", - "src": "3478:221:18" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2359, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3715:5:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2325, - "id": 2360, - "nodeType": "Return", - "src": "3708:12:18" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status.", - "id": 2362, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConfirmedByRequiredFriends", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2321, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3360:16:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2320, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3360:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3359:18:18" - }, - "payable": false, - "returnParameters": { - "id": 2325, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2324, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3423:4:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2323, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3423:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3422:6:18" - }, - "scope": 2375, - "src": "3322:405:18", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2373, - "nodeType": "Block", - "src": "3947:39:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2370, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2364, - "src": "3974:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2369, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3964:9:18", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 2371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3964:15:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 2368, - "id": 2372, - "nodeType": "Return", - "src": "3957:22:18" - } - ] - }, - "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 2374, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getDataHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2364, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2374, - "src": "3877:10:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2363, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3877:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3876:12:18" - }, - "payable": false, - "returnParameters": { - "id": 2368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2367, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2374, - "src": "3934:7:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2366, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3934:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3933:9:18" - }, - "scope": 2375, - "src": "3856:130:18", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2376, - "src": "328:3660:18" - } - ], - "src": "0:3989:18" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", - "exportedSymbols": { - "SocialRecoveryModule": [ - 2375 - ] - }, - "id": 2376, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2112, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:18" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2113, - "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 936, - "src": "24:28:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "../base/ModuleManager.sol", - "id": 2114, - "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 1213, - "src": "53:35:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2115, - "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 1653, - "src": "89:34:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 2116, - "nodeType": "ImportDirective", - "scope": 2376, - "sourceUnit": 1660, - "src": "124:28:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2117, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "361:6:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "id": 2118, - "nodeType": "InheritanceSpecifier", - "src": "361:6:18" - } - ], - "contractDependencies": [ - 935, - 1693, - 1735 - ], - "contractKind": "contract", - "documentation": "@title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2375, - "linearizedBaseContracts": [ - 2375, - 935, - 1693, - 1735 - ], - "name": "SocialRecoveryModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2121, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "375:54:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2119, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "375:6:18", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 2120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "405:24:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230", - "typeString": "literal_string \"Social Recovery Module\"" - }, - "value": "Social Recovery Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2124, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "435:40:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2122, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "435:6:18", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e32", - "id": 2123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "468:7:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" - }, - "value": "0.0.2" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2126, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "482:24:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2125, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "482:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2129, - "name": "friends", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "512:24:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2127, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "512:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2128, - "length": null, - "nodeType": "ArrayTypeName", - "src": "512:9:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2133, - "name": "isFriend", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "607:41:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 2132, - "keyType": { - "id": 2130, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "616:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "607:25:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 2131, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "627:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2137, - "name": "isExecuted", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "716:43:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2136, - "keyType": { - "id": 2134, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "725:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "716:25:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2135, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "736:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2143, - "name": "isConfirmed", - "nodeType": "VariableDeclaration", - "scope": 2375, - "src": "851:65:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - }, - "typeName": { - "id": 2142, - "keyType": { - "id": 2138, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "860:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "851:46:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - }, - "valueType": { - "id": 2141, - "keyType": { - "id": 2139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "880:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "871:25:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 2140, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "891:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2154, - "nodeType": "Block", - "src": "945:98:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2146, - "name": "isFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "963:8:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2149, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2147, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "972:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "972:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "963:20:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64", - "id": 2150, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "985:39:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", - "typeString": "literal_string \"Method can only be called by a friend\"" - }, - "value": "Method can only be called by a friend" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", - "typeString": "literal_string \"Method can only be called by a friend\"" - } - ], - "id": 2145, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "955:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "955:70:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2152, - "nodeType": "ExpressionStatement", - "src": "955:70:18" - }, - { - "id": 2153, - "nodeType": "PlaceholderStatement", - "src": "1035:1:18" - } - ] - }, - "documentation": null, - "id": 2155, - "name": "onlyFriend", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2144, - "nodeType": "ParameterList", - "parameters": [], - "src": "942:2:18" - }, - "src": "923:120:18", - "visibility": "internal" - }, - { - "body": { - "id": 2229, - "nodeType": "Block", - "src": "1314:566:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2164, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "1332:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2165, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1346:8:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1346:15:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1332:29:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74", - "id": 2168, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1363:39:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", - "typeString": "literal_string \"Threshold cannot exceed friends count\"" - }, - "value": "Threshold cannot exceed friends count" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", - "typeString": "literal_string \"Threshold cannot exceed friends count\"" - } - ], - "id": 2163, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1324:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1324:79:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2170, - "nodeType": "ExpressionStatement", - "src": "1324:79:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2172, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "1421:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1435:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "1421:15:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4174206c65617374203220667269656e6473207265717569726564", - "id": 2175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1438:29:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", - "typeString": "literal_string \"At least 2 friends required\"" - }, - "value": "At least 2 friends required" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", - "typeString": "literal_string \"At least 2 friends required\"" - } - ], - "id": 2171, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1413:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1413:55:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2177, - "nodeType": "ExpressionStatement", - "src": "1413:55:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2178, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "1478:10:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1478:12:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2180, - "nodeType": "ExpressionStatement", - "src": "1478:12:18" - }, - { - "body": { - "id": 2219, - "nodeType": "Block", - "src": "1578:236:18", - "statements": [ - { - "assignments": [ - 2193 - ], - "declarations": [ - { - "constant": false, - "id": 2193, - "name": "friend", - "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1592:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2192, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1592:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2197, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2194, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1609:8:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2196, - "indexExpression": { - "argumentTypes": null, - "id": 2195, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "1618:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1609:11:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1592:28:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2199, - "name": "friend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "1642:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1652:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1642:11:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420667269656e6420616464726573732070726f7669646564", - "id": 2202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1655:33:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", - "typeString": "literal_string \"Invalid friend address provided\"" - }, - "value": "Invalid friend address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", - "typeString": "literal_string \"Invalid friend address provided\"" - } - ], - "id": 2198, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1634:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1634:55:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2204, - "nodeType": "ExpressionStatement", - "src": "1634:55:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1711:17:18", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2206, - "name": "isFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "1712:8:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2208, - "indexExpression": { - "argumentTypes": null, - "id": 2207, - "name": "friend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "1721:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1712:16:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4475706c696361746520667269656e6420616464726573732070726f7669646564", - "id": 2210, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1730:35:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", - "typeString": "literal_string \"Duplicate friend address provided\"" - }, - "value": "Duplicate friend address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", - "typeString": "literal_string \"Duplicate friend address provided\"" - } - ], - "id": 2205, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1703:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1703:63:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2212, - "nodeType": "ExpressionStatement", - "src": "1703:63:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2213, - "name": "isFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2133, - "src": "1780:8:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2215, - "indexExpression": { - "argumentTypes": null, - "id": 2214, - "name": "friend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "1789:6:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1780:16:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1799:4:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1780:23:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2218, - "nodeType": "ExpressionStatement", - "src": "1780:23:18" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2185, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "1552:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2186, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1556:8:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1556:15:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1552:19:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2220, - "initializationExpression": { - "assignments": [ - 2182 - ], - "declarations": [ - { - "constant": false, - "id": 2182, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1537:9:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1537:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2184, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1549:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1537:13:18" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1573:3:18", - "subExpression": { - "argumentTypes": null, - "id": 2189, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "1573:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2191, - "nodeType": "ExpressionStatement", - "src": "1573:3:18" - }, - "nodeType": "ForStatement", - "src": "1532:282:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2221, - "name": "friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "1823:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2222, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "1833:8:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "1823:18:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2224, - "nodeType": "ExpressionStatement", - "src": "1823:18:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2225, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2126, - "src": "1851:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2226, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "1863:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1851:22:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2228, - "nodeType": "ExpressionStatement", - "src": "1851:22:18" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _friends List of friends' addresses.\n @param _threshold Required number of friends to confirm replacement.", - "id": 2230, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2161, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2158, - "name": "_friends", - "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1255:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2156, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1255:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2157, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1255:9:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2160, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 2230, - "src": "1275:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2159, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1275:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1254:40:18" - }, - "payable": false, - "returnParameters": { - "id": 2162, - "nodeType": "ParameterList", - "parameters": [], - "src": "1314:0:18" - }, - "scope": 2375, - "src": "1240:640:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2254, - "nodeType": "Block", - "src": "2077:126:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2095:21:18", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2238, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "2096:10:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 2240, - "indexExpression": { - "argumentTypes": null, - "id": 2239, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2107:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2096:20:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2118:27:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - }, - "value": "Recovery already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - } - ], - "id": 2237, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2087:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2087:59:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2244, - "nodeType": "ExpressionStatement", - "src": "2087:59:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2245, - "name": "isConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "2156:11:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 2249, - "indexExpression": { - "argumentTypes": null, - "id": 2246, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2168:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2156:21:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2250, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "2178:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2178:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2156:33:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2251, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2192:4:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2156:40:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2253, - "nodeType": "ExpressionStatement", - "src": "2156:40:18" - } - ] - }, - "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 2255, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2235, - "modifierName": { - "argumentTypes": null, - "id": 2234, - "name": "onlyFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2155, - "src": "2062:10:18", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2062:10:18" - } - ], - "name": "confirmTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2233, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2232, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 2255, - "src": "2021:16:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2231, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2021:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2020:18:18" - }, - "payable": false, - "returnParameters": { - "id": 2236, - "nodeType": "ParameterList", - "parameters": [], - "src": "2077:0:18" - }, - "scope": 2375, - "src": "1993:210:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2318, - "nodeType": "Block", - "src": "2652:509:18", - "statements": [ - { - "assignments": [ - 2267 - ], - "declarations": [ - { - "constant": false, - "id": 2267, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2662:17:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2266, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2662:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2275, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", - "id": 2270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2706:36:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", - "typeString": "literal_string \"swapOwner(address,address,address)\"" - }, - "value": "swapOwner(address,address,address)" - }, - { - "argumentTypes": null, - "id": 2271, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2257, - "src": "2744:9:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2272, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2259, - "src": "2755:8:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2273, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2261, - "src": "2765:8:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", - "typeString": "literal_string \"swapOwner(address,address,address)\"" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2268, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "2682:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2682:23:18", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (string memory) pure returns (bytes memory)" - } - }, - "id": 2274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2682:92:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2662:112:18" - }, - { - "assignments": [ - 2277 - ], - "declarations": [ - { - "constant": false, - "id": 2277, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2784:16:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2276, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2784:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2281, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2279, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2267, - "src": "2815:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2278, - "name": "getDataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2374, - "src": "2803:11:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2803:17:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2784:36:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2838:21:18", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2283, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "2839:10:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 2285, - "indexExpression": { - "argumentTypes": null, - "id": 2284, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "2850:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2839:20:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2861:27:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - }, - "value": "Recovery already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - } - ], - "id": 2282, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2830:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2830:59:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2289, - "nodeType": "ExpressionStatement", - "src": "2830:59:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2292, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "2936:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2291, - "name": "isConfirmedByRequiredFriends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2362, - "src": "2907:28:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view returns (bool)" - } - }, - "id": 2293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2907:38:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 2294, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2947:39:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", - "typeString": "literal_string \"Recovery has not enough confirmations\"" - }, - "value": "Recovery has not enough confirmations" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", - "typeString": "literal_string \"Recovery has not enough confirmations\"" - } - ], - "id": 2290, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2899:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2899:88:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2296, - "nodeType": "ExpressionStatement", - "src": "2899:88:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2297, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "2997:10:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 2299, - "indexExpression": { - "argumentTypes": null, - "id": 2298, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "3008:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2997:20:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2300, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3020:4:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2997:27:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2302, - "nodeType": "ExpressionStatement", - "src": "2997:27:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2307, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "3084:7:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 2306, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3076:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3076:16:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3094:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 2310, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2267, - "src": "3097:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2311, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "3103:4:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "3103:14:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2313, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3103:19:18", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2304, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "3042:7:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 2305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "3042:33:18", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3042:81:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465207265636f76657279", - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3125:28:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", - "typeString": "literal_string \"Could not execute recovery\"" - }, - "value": "Could not execute recovery" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", - "typeString": "literal_string \"Could not execute recovery\"" - } - ], - "id": 2303, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "3034:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3034:120:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2317, - "nodeType": "ExpressionStatement", - "src": "3034:120:18" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.\n @return Returns if transaction can be executed.", - "id": 2319, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2264, - "modifierName": { - "argumentTypes": null, - "id": 2263, - "name": "onlyFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2155, - "src": "2637:10:18", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2637:10:18" - } - ], - "name": "recoverAccess", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2262, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2257, - "name": "prevOwner", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2559:17:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2256, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2559:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2259, - "name": "oldOwner", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2578:16:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2258, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2578:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2261, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2596:16:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2260, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2596:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2558:55:18" - }, - "payable": false, - "returnParameters": { - "id": 2265, - "nodeType": "ParameterList", - "parameters": [], - "src": "2652:0:18" - }, - "scope": 2375, - "src": "2536:625:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2361, - "nodeType": "Block", - "src": "3433:294:18", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2327, - "name": "confirmationCount", - "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3443:25:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2326, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3443:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2328, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "3443:25:18" - }, - { - "body": { - "id": 2357, - "nodeType": "Block", - "src": "3523:176:18", - "statements": [ - { - "condition": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2340, - "name": "isConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "3541:11:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 2342, - "indexExpression": { - "argumentTypes": null, - "id": 2341, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "3553:8:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3541:21:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2346, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2343, - "name": "friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "3563:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2345, - "indexExpression": { - "argumentTypes": null, - "id": 2344, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2330, - "src": "3571:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3563:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3541:33:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2350, - "nodeType": "IfStatement", - "src": "3537:74:18", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 2348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3592:19:18", - "subExpression": { - "argumentTypes": null, - "id": 2347, - "name": "confirmationCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "3592:17:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2349, - "nodeType": "ExpressionStatement", - "src": "3592:19:18" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2351, - "name": "confirmationCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "3629:17:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2352, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2126, - "src": "3650:9:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3629:30:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2356, - "nodeType": "IfStatement", - "src": "3625:63:18", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2354, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3684:4:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2325, - "id": 2355, - "nodeType": "Return", - "src": "3677:11:18" - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2333, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2330, - "src": "3498:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2334, - "name": "friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "3502:7:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2335, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3502:14:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3498:18:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2358, - "initializationExpression": { - "assignments": [ - 2330 - ], - "declarations": [ - { - "constant": false, - "id": 2330, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3483:9:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2329, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3483:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2332, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2331, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3495:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3483:13:18" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3518:3:18", - "subExpression": { - "argumentTypes": null, - "id": 2337, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2330, - "src": "3518:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2339, - "nodeType": "ExpressionStatement", - "src": "3518:3:18" - }, - "nodeType": "ForStatement", - "src": "3478:221:18" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2359, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3715:5:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2325, - "id": 2360, - "nodeType": "Return", - "src": "3708:12:18" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status.", - "id": 2362, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConfirmedByRequiredFriends", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2321, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3360:16:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2320, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3360:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3359:18:18" - }, - "payable": false, - "returnParameters": { - "id": 2325, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2324, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3423:4:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2323, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3423:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3422:6:18" - }, - "scope": 2375, - "src": "3322:405:18", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2373, - "nodeType": "Block", - "src": "3947:39:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2370, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2364, - "src": "3974:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2369, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3964:9:18", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 2371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3964:15:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 2368, - "id": 2372, - "nodeType": "Return", - "src": "3957:22:18" - } - ] - }, - "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 2374, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getDataHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2364, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2374, - "src": "3877:10:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2363, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3877:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3876:12:18" - }, - "payable": false, - "returnParameters": { - "id": 2368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2367, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2374, - "src": "3934:7:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2366, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3934:7:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3933:9:18" - }, - "scope": 2375, - "src": "3856:130:18", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2376, - "src": "328:3660:18" - } - ], - "src": "0:3989:18" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x7b813df8b963c5c3d4d18b6e2319c09e9ff5e9ea", - "transactionHash": "0x3bfbb38caa58f7fbdb48978e96b3c9eb0f4925f303daa29ec23be27a79c3e73c" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0x0290fb167208af455bb137780163b7b7a9a10c16", - "transactionHash": "0x9ec6c558e874acec6da5e9bbc83f2080cfd0d6a76bad2ecd337682aee9e63307" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.451Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/StateChannelModule.json b/safe-contracts/build/contracts/StateChannelModule.json deleted file mode 100644 index e092307e..00000000 --- a/safe-contracts/build/contracts/StateChannelModule.json +++ /dev/null @@ -1,5380 +0,0 @@ -{ - "contractName": "StateChannelModule", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "manager", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - } - ], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "isExecuted", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "nonce", - "type": "uint256" - }, - { - "name": "signatures", - "type": "bytes" - } - ], - "name": "execTransaction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "nonce", - "type": "uint256" - } - ], - "name": "getTransactionHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061117e806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820a48bbf0ad2bc336bfcfefa06097ad1574518b511dc1e366dc303d515890088810029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820a48bbf0ad2bc336bfcfefa06097ad1574518b511dc1e366dc303d515890088810029", - "sourceMap": "320:2840:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;320:2840:19;;;;;;;", - "deployedSourceMap": "320:2840:19:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2829:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2829:329:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;383:52:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;383:52:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;383:52:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;673:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;673:65:19;;;;;;579:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;579:46:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1203:634;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1203:634:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;441:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;441:40:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;441:40:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2829:329;3032:7;3094:4;3089:10;;3106:1;3101:7;;3110:4;3116:2;3120:5;3127:4;3133:9;3144:5;3072:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3072:78:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3072:78:19;;;3062:89;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3062:89:19;;;;;;;;;;;;;;;;3055:96;;2829:329;;;;;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;383:52:19:-;;;;;;;;;;;;;;;;;;;;:::o;673:65::-;719:12;:10;:12::i;:::-;673:65::o;579:46::-;;;;;;;;;;;;;;;;;:::o;1203:634::-;1413:23;1439:53;1458:2;1462:5;1469:4;1475:9;1486:5;1439:18;:53::i;:::-;1413:79;;1541:1;1510:10;:27;1521:15;1510:27;;;;;;;;;;;;;;;;;;:32;1502:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1585:38;1595:15;1612:10;1585:9;:38::i;:::-;1716:1;1686:10;:27;1697:15;1686:27;;;;;;;;;;;;;;;;;:31;;;;1735:7;;;;;;;;;;;:33;;;1769:2;1773:5;1780:4;1786:9;1735:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1735:61:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1735:61:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1735:61:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1735:61:19;;;;;;;;;;;;;;;;1727:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1203:634;;;;;;;:::o;441:40::-;;;;;;;;;;;;;;;;;;;;:::o;442:300:4:-;656:1;644:7;;;;;;;;;;;636:21;;;628:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;724:10;700:7;;:35;;;;;;;;;;;;;;;;;;442:300::o;1843:708:19:-;2001:17;2041:20;2071:9;2090:17;2029:1;2001:30;;2123:7;;;;;;;;;;;2110:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2110:36:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2110:36:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2110:36:19;;;;;;;;;;;;;;;;2090:56;;2207:1;2203:5;;2198:347;2214:9;2210:1;:13;2198:347;;;2259:42;2270:15;2287:10;2299:1;2259:10;:42::i;:::-;2244:57;;2336:7;;;;;;;;;;;2323:29;;;2353:12;2323:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2323:43:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2323:43:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2323:43:19;;;;;;;;;;;;;;;;2315:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2439:9;2424:24;;:12;:24;;;2416:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2522:12;2510:24;;2225:3;;;;;;;2198:347;;;1843:708;;;;;;:::o;485:340:12:-;642:7;666;683:9;702;733:37;748:16;766:3;733:14;:37::i;:::-;721:49;;;;;;;;;;;;787:31;797:11;810:1;813;816;787:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;787:31:12;;;;;;;;780:38;;485:340;;;;;;;;:::o;1002:914::-;1104:7;1113:9;1124;1424:3;1418:4;1414:14;1486:4;1472:12;1468:23;1456:10;1452:40;1446:47;1441:52;;1551:4;1537:12;1533:23;1521:10;1517:40;1511:47;1506:52;;1895:4;1886;1872:12;1868:23;1856:10;1852:40;1846:47;1842:58;1837:63;;1380:530;;;;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"../base/Module.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/SignatureDecoder.sol\";\n\n\n/// @title Gnosis Safe State Module - A module that allows interaction with statechannels.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract StateChannelModule is Module, SignatureDecoder {\n\n string public constant NAME = \"State Channel Module\";\n string public constant VERSION = \"0.0.2\";\n\n // isExecuted mapping allows to check if a transaction (by hash) was already executed.\n mapping (bytes32 => uint256) public isExecuted;\n\n /// @dev Setup function sets manager\n function setup()\n public\n {\n setManager();\n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners.\n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @param nonce Nonce used for this Safe transaction.\n /// @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n function execTransaction(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce,\n bytes signatures\n )\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(isExecuted[transactionHash] == 0, \"Transaction already executed\");\n checkHash(transactionHash, signatures);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = 1;\n require(manager.execTransactionFromModule(to, value, data, operation), \"Could not execute transaction\");\n }\n\n function checkHash(bytes32 transactionHash, bytes signatures)\n internal\n view\n {\n // There cannot be an owner with address 0.\n address lastOwner = address(0);\n address currentOwner;\n uint256 i;\n uint256 threshold = OwnerManager(manager).getThreshold();\n // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n currentOwner = recoverKey(transactionHash, signatures, i);\n require(OwnerManager(manager).isOwner(currentOwner), \"Signature not provided by owner\");\n require(currentOwner > lastOwner, \"Signatures are not ordered by owner address\");\n lastOwner = currentOwner;\n }\n }\n\n /// @dev Returns hash to be signed by owners.\n /// @param to Destination address.\n /// @param value Ether value.\n /// @param data Data payload.\n /// @param operation Operation type.\n /// @param nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(abi.encodePacked(byte(0x19), byte(0), this, to, value, data, operation, nonce));\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", - "exportedSymbols": { - "StateChannelModule": [ - 2562 - ] - }, - "id": 2563, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2377, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:19" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2378, - "nodeType": "ImportDirective", - "scope": 2563, - "sourceUnit": 936, - "src": "24:28:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2379, - "nodeType": "ImportDirective", - "scope": 2563, - "sourceUnit": 1653, - "src": "53:34:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "file": "../common/SignatureDecoder.sol", - "id": 2380, - "nodeType": "ImportDirective", - "scope": 2563, - "sourceUnit": 1792, - "src": "88:40:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2381, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "351:6:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "id": 2382, - "nodeType": "InheritanceSpecifier", - "src": "351:6:19" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2383, - "name": "SignatureDecoder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1791, - "src": "359:16:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureDecoder_$1791", - "typeString": "contract SignatureDecoder" - } - }, - "id": 2384, - "nodeType": "InheritanceSpecifier", - "src": "359:16:19" - } - ], - "contractDependencies": [ - 935, - 1693, - 1735, - 1791 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe State Module - A module that allows interaction with statechannels.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 2562, - "linearizedBaseContracts": [ - 2562, - 1791, - 935, - 1693, - 1735 - ], - "name": "StateChannelModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2387, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "383:52:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2385, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "383:6:19", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 2386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "413:22:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e66fa361bdba11103aaf2321b03707a79b393abf1f410f3f609398777fd3a713", - "typeString": "literal_string \"State Channel Module\"" - }, - "value": "State Channel Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2390, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "441:40:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2388, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "441:6:19", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e32", - "id": 2389, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "474:7:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" - }, - "value": "0.0.2" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2394, - "name": "isExecuted", - "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "579:46:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 2393, - "keyType": { - "id": 2391, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "588:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "579:28:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 2392, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "599:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2400, - "nodeType": "Block", - "src": "709:29:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2397, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "719:10:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "719:12:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2399, - "nodeType": "ExpressionStatement", - "src": "719:12:19" - } - ] - }, - "documentation": "@dev Setup function sets manager", - "id": 2401, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2395, - "nodeType": "ParameterList", - "parameters": [], - "src": "687:2:19" - }, - "payable": false, - "returnParameters": { - "id": 2396, - "nodeType": "ParameterList", - "parameters": [], - "src": "709:0:19" - }, - "scope": 2562, - "src": "673:65:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2457, - "nodeType": "Block", - "src": "1403:434:19", - "statements": [ - { - "assignments": [ - 2417 - ], - "declarations": [ - { - "constant": false, - "id": 2417, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1413:23:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2416, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1413:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2425, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2419, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "1458:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2420, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2405, - "src": "1462:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2421, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "1469:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2422, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1475:9:19", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 2423, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2411, - "src": "1486:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2418, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "1439:18:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" - } - }, - "id": 2424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1439:53:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1413:79:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2427, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2394, - "src": "1510:10:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 2429, - "indexExpression": { - "argumentTypes": null, - "id": 2428, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "1521:15:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1510:27:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1541:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1510:32:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20616c7265616479206578656375746564", - "id": 2432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1544:30:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", - "typeString": "literal_string \"Transaction already executed\"" - }, - "value": "Transaction already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", - "typeString": "literal_string \"Transaction already executed\"" - } - ], - "id": 2426, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1502:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1502:73:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2434, - "nodeType": "ExpressionStatement", - "src": "1502:73:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2436, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "1595:15:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2437, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "1612:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2435, - "name": "checkHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2527, - "src": "1585:9:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes32,bytes memory) view" - } - }, - "id": 2438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1585:38:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2439, - "nodeType": "ExpressionStatement", - "src": "1585:38:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2440, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2394, - "src": "1686:10:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 2442, - "indexExpression": { - "argumentTypes": null, - "id": 2441, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "1697:15:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1686:27:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 2443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1716:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1686:31:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2445, - "nodeType": "ExpressionStatement", - "src": "1686:31:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2449, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "1769:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2450, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2405, - "src": "1773:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2451, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "1780:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2452, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1786:9:19", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2447, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "1735:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 2448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "1735:33:19", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1735:61:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2454, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1798:31:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", - "typeString": "literal_string \"Could not execute transaction\"" - }, - "value": "Could not execute transaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", - "typeString": "literal_string \"Could not execute transaction\"" - } - ], - "id": 2446, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1727:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1727:103:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2456, - "nodeType": "ExpressionStatement", - "src": "1727:103:19" - } - ] - }, - "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners.\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param nonce Nonce used for this Safe transaction.\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 2458, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2414, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2403, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1237:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2402, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1237:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2405, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1258:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1258:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2407, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1282:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2406, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1282:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2409, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1303:24:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 2408, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "1303:14:19", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2411, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1338:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1338:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2413, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1361:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2412, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1361:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1227:156:19" - }, - "payable": false, - "returnParameters": { - "id": 2415, - "nodeType": "ParameterList", - "parameters": [], - "src": "1403:0:19" - }, - "scope": 2562, - "src": "1203:634:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2526, - "nodeType": "Block", - "src": "1939:612:19", - "statements": [ - { - "assignments": [ - 2466 - ], - "declarations": [ - { - "constant": false, - "id": 2466, - "name": "lastOwner", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2001:17:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2465, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2001:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2470, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2029:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2467, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2021:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2021:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2001:30:19" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2472, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2041:20:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2471, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2041:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2473, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2041:20:19" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2475, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2071:9:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2474, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2071:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2476, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2071:9:19" - }, - { - "assignments": [ - 2478 - ], - "declarations": [ - { - "constant": false, - "id": 2478, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2090:17:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2477, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2090:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2484, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2480, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2123:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 2479, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2110:12:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2110:21:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", - "typeString": "contract OwnerManager" - } - }, - "id": 2482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getThreshold", - "nodeType": "MemberAccess", - "referencedDeclaration": 1588, - "src": "2110:34:19", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 2483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2110:36:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2090:56:19" - }, - { - "body": { - "id": 2524, - "nodeType": "Block", - "src": "2230:315:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2495, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2244:12:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2497, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2460, - "src": "2270:15:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2498, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2462, - "src": "2287:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2499, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2299:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2496, - "name": "recoverKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1775, - "src": "2259:10:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory,uint256) pure returns (address)" - } - }, - "id": 2500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2259:42:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2244:57:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2502, - "nodeType": "ExpressionStatement", - "src": "2244:57:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2508, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2353:12:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2505, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2336:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 2504, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2323:12:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2323:21:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", - "typeString": "contract OwnerManager" - } - }, - "id": 2507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1602, - "src": "2323:29:19", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 2509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2323:43:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 2510, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2368:33:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", - "typeString": "literal_string \"Signature not provided by owner\"" - }, - "value": "Signature not provided by owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", - "typeString": "literal_string \"Signature not provided by owner\"" - } - ], - "id": 2503, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2315:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2315:87:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2512, - "nodeType": "ExpressionStatement", - "src": "2315:87:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2514, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2424:12:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 2515, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "2439:9:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2424:24:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 2517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2450:45:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", - "typeString": "literal_string \"Signatures are not ordered by owner address\"" - }, - "value": "Signatures are not ordered by owner address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", - "typeString": "literal_string \"Signatures are not ordered by owner address\"" - } - ], - "id": 2513, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2416:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2416:80:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2519, - "nodeType": "ExpressionStatement", - "src": "2416:80:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2520, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "2510:9:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2521, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2522:12:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2510:24:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2523, - "nodeType": "ExpressionStatement", - "src": "2510:24:19" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2489, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2210:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2490, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2478, - "src": "2214:9:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2210:13:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2525, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 2487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2485, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2203:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 2486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2207:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2203:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2488, - "nodeType": "ExpressionStatement", - "src": "2203:5:19" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2225:3:19", - "subExpression": { - "argumentTypes": null, - "id": 2492, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2225:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2494, - "nodeType": "ExpressionStatement", - "src": "2225:3:19" - }, - "nodeType": "ForStatement", - "src": "2198:347:19" - } - ] - }, - "documentation": null, - "id": 2527, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "checkHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2460, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "1862:23:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2459, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1862:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2462, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "1887:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2461, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1887:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1861:43:19" - }, - "payable": false, - "returnParameters": { - "id": 2464, - "nodeType": "ParameterList", - "parameters": [], - "src": "1939:0:19" - }, - "scope": 2562, - "src": "1843:708:19", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2560, - "nodeType": "Block", - "src": "3045:113:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 2546, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3094:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 2545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3089:4:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 2547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3089:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3106:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3101:4:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 2550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3101:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 2551, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4070, - "src": "3110:4:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$2562", - "typeString": "contract StateChannelModule" - } - }, - { - "argumentTypes": null, - "id": 2552, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2529, - "src": "3116:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2553, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2531, - "src": "3120:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2554, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "3127:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2555, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "3133:9:19", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 2556, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2537, - "src": "3144:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_StateChannelModule_$2562", - "typeString": "contract StateChannelModule" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2543, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "3072:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2544, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3072:16:19", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3072:78:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2542, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3062:9:19", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 2558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3062:89:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 2541, - "id": 2559, - "nodeType": "Return", - "src": "3055:96:19" - } - ] - }, - "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param nonce Transaction nonce.\n @return Transaction hash.", - "id": 2561, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2529, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2866:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2528, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2866:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2531, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2887:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2530, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2887:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2533, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2911:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2532, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2911:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2535, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2932:24:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 2534, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "2932:14:19", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2537, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2967:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2536, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2967:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2856:130:19" - }, - "payable": false, - "returnParameters": { - "id": 2541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2540, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "3032:7:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2539, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3032:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3031:9:19" - }, - "scope": 2562, - "src": "2829:329:19", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2563, - "src": "320:2840:19" - } - ], - "src": "0:3161:19" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", - "exportedSymbols": { - "StateChannelModule": [ - 2562 - ] - }, - "id": 2563, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2377, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:19" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2378, - "nodeType": "ImportDirective", - "scope": 2563, - "sourceUnit": 936, - "src": "24:28:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2379, - "nodeType": "ImportDirective", - "scope": 2563, - "sourceUnit": 1653, - "src": "53:34:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "file": "../common/SignatureDecoder.sol", - "id": 2380, - "nodeType": "ImportDirective", - "scope": 2563, - "sourceUnit": 1792, - "src": "88:40:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2381, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "351:6:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "id": 2382, - "nodeType": "InheritanceSpecifier", - "src": "351:6:19" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2383, - "name": "SignatureDecoder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1791, - "src": "359:16:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureDecoder_$1791", - "typeString": "contract SignatureDecoder" - } - }, - "id": 2384, - "nodeType": "InheritanceSpecifier", - "src": "359:16:19" - } - ], - "contractDependencies": [ - 935, - 1693, - 1735, - 1791 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe State Module - A module that allows interaction with statechannels.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 2562, - "linearizedBaseContracts": [ - 2562, - 1791, - 935, - 1693, - 1735 - ], - "name": "StateChannelModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2387, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "383:52:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2385, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "383:6:19", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 2386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "413:22:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e66fa361bdba11103aaf2321b03707a79b393abf1f410f3f609398777fd3a713", - "typeString": "literal_string \"State Channel Module\"" - }, - "value": "State Channel Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2390, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "441:40:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2388, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "441:6:19", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e32", - "id": 2389, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "474:7:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" - }, - "value": "0.0.2" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2394, - "name": "isExecuted", - "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "579:46:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 2393, - "keyType": { - "id": 2391, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "588:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "579:28:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 2392, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "599:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2400, - "nodeType": "Block", - "src": "709:29:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2397, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "719:10:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "719:12:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2399, - "nodeType": "ExpressionStatement", - "src": "719:12:19" - } - ] - }, - "documentation": "@dev Setup function sets manager", - "id": 2401, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2395, - "nodeType": "ParameterList", - "parameters": [], - "src": "687:2:19" - }, - "payable": false, - "returnParameters": { - "id": 2396, - "nodeType": "ParameterList", - "parameters": [], - "src": "709:0:19" - }, - "scope": 2562, - "src": "673:65:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2457, - "nodeType": "Block", - "src": "1403:434:19", - "statements": [ - { - "assignments": [ - 2417 - ], - "declarations": [ - { - "constant": false, - "id": 2417, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1413:23:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2416, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1413:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2425, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2419, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "1458:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2420, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2405, - "src": "1462:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2421, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "1469:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2422, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1475:9:19", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 2423, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2411, - "src": "1486:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2418, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "1439:18:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" - } - }, - "id": 2424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1439:53:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1413:79:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2427, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2394, - "src": "1510:10:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 2429, - "indexExpression": { - "argumentTypes": null, - "id": 2428, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "1521:15:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1510:27:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1541:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1510:32:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20616c7265616479206578656375746564", - "id": 2432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1544:30:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", - "typeString": "literal_string \"Transaction already executed\"" - }, - "value": "Transaction already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", - "typeString": "literal_string \"Transaction already executed\"" - } - ], - "id": 2426, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1502:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1502:73:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2434, - "nodeType": "ExpressionStatement", - "src": "1502:73:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2436, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "1595:15:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2437, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "1612:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2435, - "name": "checkHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2527, - "src": "1585:9:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes32,bytes memory) view" - } - }, - "id": 2438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1585:38:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2439, - "nodeType": "ExpressionStatement", - "src": "1585:38:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2440, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2394, - "src": "1686:10:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 2442, - "indexExpression": { - "argumentTypes": null, - "id": 2441, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "1697:15:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1686:27:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 2443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1716:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1686:31:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2445, - "nodeType": "ExpressionStatement", - "src": "1686:31:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2449, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "1769:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2450, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2405, - "src": "1773:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2451, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "1780:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2452, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1786:9:19", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2447, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "1735:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 2448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "1735:33:19", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1735:61:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2454, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1798:31:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", - "typeString": "literal_string \"Could not execute transaction\"" - }, - "value": "Could not execute transaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", - "typeString": "literal_string \"Could not execute transaction\"" - } - ], - "id": 2446, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1727:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1727:103:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2456, - "nodeType": "ExpressionStatement", - "src": "1727:103:19" - } - ] - }, - "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners.\n @param to Destination address of Safe transaction.\n @param value Ether value of Safe transaction.\n @param data Data payload of Safe transaction.\n @param operation Operation type of Safe transaction.\n @param nonce Nonce used for this Safe transaction.\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 2458, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2414, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2403, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1237:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2402, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1237:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2405, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1258:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1258:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2407, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1282:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2406, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1282:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2409, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1303:24:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 2408, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "1303:14:19", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2411, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1338:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1338:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2413, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 2458, - "src": "1361:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2412, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1361:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1227:156:19" - }, - "payable": false, - "returnParameters": { - "id": 2415, - "nodeType": "ParameterList", - "parameters": [], - "src": "1403:0:19" - }, - "scope": 2562, - "src": "1203:634:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2526, - "nodeType": "Block", - "src": "1939:612:19", - "statements": [ - { - "assignments": [ - 2466 - ], - "declarations": [ - { - "constant": false, - "id": 2466, - "name": "lastOwner", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2001:17:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2465, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2001:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2470, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2029:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2467, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2021:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2021:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2001:30:19" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2472, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2041:20:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2471, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2041:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2473, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2041:20:19" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2475, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2071:9:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2474, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2071:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2476, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2071:9:19" - }, - { - "assignments": [ - 2478 - ], - "declarations": [ - { - "constant": false, - "id": 2478, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "2090:17:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2477, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2090:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2484, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2480, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2123:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 2479, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2110:12:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2110:21:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", - "typeString": "contract OwnerManager" - } - }, - "id": 2482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getThreshold", - "nodeType": "MemberAccess", - "referencedDeclaration": 1588, - "src": "2110:34:19", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 2483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2110:36:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2090:56:19" - }, - { - "body": { - "id": 2524, - "nodeType": "Block", - "src": "2230:315:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2495, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2244:12:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2497, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2460, - "src": "2270:15:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2498, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2462, - "src": "2287:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2499, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2299:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2496, - "name": "recoverKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1775, - "src": "2259:10:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory,uint256) pure returns (address)" - } - }, - "id": 2500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2259:42:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2244:57:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2502, - "nodeType": "ExpressionStatement", - "src": "2244:57:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2508, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2353:12:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2505, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2336:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 2504, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2323:12:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2323:21:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", - "typeString": "contract OwnerManager" - } - }, - "id": 2507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1602, - "src": "2323:29:19", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 2509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2323:43:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 2510, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2368:33:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", - "typeString": "literal_string \"Signature not provided by owner\"" - }, - "value": "Signature not provided by owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", - "typeString": "literal_string \"Signature not provided by owner\"" - } - ], - "id": 2503, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2315:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2315:87:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2512, - "nodeType": "ExpressionStatement", - "src": "2315:87:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2514, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2424:12:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 2515, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "2439:9:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2424:24:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 2517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2450:45:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", - "typeString": "literal_string \"Signatures are not ordered by owner address\"" - }, - "value": "Signatures are not ordered by owner address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", - "typeString": "literal_string \"Signatures are not ordered by owner address\"" - } - ], - "id": 2513, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2416:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2416:80:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2519, - "nodeType": "ExpressionStatement", - "src": "2416:80:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2520, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "2510:9:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2521, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "2522:12:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2510:24:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2523, - "nodeType": "ExpressionStatement", - "src": "2510:24:19" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2489, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2210:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2490, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2478, - "src": "2214:9:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2210:13:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2525, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 2487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2485, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2203:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 2486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2207:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2203:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2488, - "nodeType": "ExpressionStatement", - "src": "2203:5:19" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2225:3:19", - "subExpression": { - "argumentTypes": null, - "id": 2492, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2475, - "src": "2225:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2494, - "nodeType": "ExpressionStatement", - "src": "2225:3:19" - }, - "nodeType": "ForStatement", - "src": "2198:347:19" - } - ] - }, - "documentation": null, - "id": 2527, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "checkHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2460, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "1862:23:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2459, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1862:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2462, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "1887:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2461, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1887:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1861:43:19" - }, - "payable": false, - "returnParameters": { - "id": 2464, - "nodeType": "ParameterList", - "parameters": [], - "src": "1939:0:19" - }, - "scope": 2562, - "src": "1843:708:19", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2560, - "nodeType": "Block", - "src": "3045:113:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 2546, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3094:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 2545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3089:4:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 2547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3089:10:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3106:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3101:4:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 2550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3101:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 2551, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4070, - "src": "3110:4:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$2562", - "typeString": "contract StateChannelModule" - } - }, - { - "argumentTypes": null, - "id": 2552, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2529, - "src": "3116:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2553, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2531, - "src": "3120:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2554, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "3127:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2555, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "3133:9:19", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 2556, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2537, - "src": "3144:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_StateChannelModule_$2562", - "typeString": "contract StateChannelModule" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2543, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4002, - "src": "3072:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2544, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3072:16:19", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3072:78:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2542, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "3062:9:19", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 2558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3062:89:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 2541, - "id": 2559, - "nodeType": "Return", - "src": "3055:96:19" - } - ] - }, - "documentation": "@dev Returns hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param operation Operation type.\n @param nonce Transaction nonce.\n @return Transaction hash.", - "id": 2561, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2529, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2866:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2528, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2866:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2531, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2887:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2530, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2887:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2533, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2911:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2532, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2911:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2535, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2932:24:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 2534, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1658, - "src": "2932:14:19", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2537, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "2967:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2536, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2967:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2856:130:19" - }, - "payable": false, - "returnParameters": { - "id": 2541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2540, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2561, - "src": "3032:7:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2539, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3032:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3031:9:19" - }, - "scope": 2562, - "src": "2829:329:19", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2563, - "src": "320:2840:19" - } - ], - "src": "0:3161:19" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x1627ecb6ed8188b6bacbb3b10f96702afdfbf654", - "transactionHash": "0x75f57cb2a58b4fc7044f711e7480db922157fa23e235ebdce6d1c8fc6bc6b510" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0xd833215cbcc3f914bd1c9ece3ee7bf8b14f841bb", - "transactionHash": "0xa05ff534671ab7a7cefd5ca6bf68d5b10ee19259c09bf33323810ebcedca7157" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.435Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Token.json b/safe-contracts/build/contracts/Token.json deleted file mode 100644 index ec183f15..00000000 --- a/safe-contracts/build/contracts/Token.json +++ /dev/null @@ -1,363 +0,0 @@ -{ - "contractName": "Token", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.4.23;\nimport \"@gnosis.pm/mock-contract/contracts/MockContract.sol\";\ncontract Token {\n\tfunction transfer(address _to, uint value) public returns (bool);\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/mocks/Token.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/mocks/Token.sol", - "exportedSymbols": { - "Token": [ - 1871 - ] - }, - "id": 1872, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1860, - "literals": [ - "solidity", - "^", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:24:16" - }, - { - "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "file": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "id": 1861, - "nodeType": "ImportDirective", - "scope": 1872, - "sourceUnit": 4001, - "src": "25:61:16", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 1871, - "linearizedBaseContracts": [ - 1871 - ], - "name": "Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1870, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1866, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1863, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1870, - "src": "123:11:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1862, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "123:7:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1865, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1870, - "src": "136:10:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1864, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "136:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "122:25:16" - }, - "payable": false, - "returnParameters": { - "id": 1869, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1868, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1870, - "src": "164:4:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1867, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "164:4:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "163:6:16" - }, - "scope": 1871, - "src": "105:65:16", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1872, - "src": "87:85:16" - } - ], - "src": "0:173:16" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/mocks/Token.sol", - "exportedSymbols": { - "Token": [ - 1871 - ] - }, - "id": 1872, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1860, - "literals": [ - "solidity", - "^", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:24:16" - }, - { - "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "file": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "id": 1861, - "nodeType": "ImportDirective", - "scope": 1872, - "sourceUnit": 4001, - "src": "25:61:16", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 1871, - "linearizedBaseContracts": [ - 1871 - ], - "name": "Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1870, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1866, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1863, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1870, - "src": "123:11:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1862, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "123:7:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1865, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1870, - "src": "136:10:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1864, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "136:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "122:25:16" - }, - "payable": false, - "returnParameters": { - "id": 1869, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1868, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1870, - "src": "164:4:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1867, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "164:4:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "163:6:16" - }, - "scope": 1871, - "src": "105:65:16", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1872, - "src": "87:85:16" - } - ], - "src": "0:173:16" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:25:58.939Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/WhitelistModule.json b/safe-contracts/build/contracts/WhitelistModule.json deleted file mode 100644 index 90e0a69e..00000000 --- a/safe-contracts/build/contracts/WhitelistModule.json +++ /dev/null @@ -1,4349 +0,0 @@ -{ - "contractName": "WhitelistModule", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "isWhitelisted", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "manager", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - } - ], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "accounts", - "type": "address[]" - } - ], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "addToWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "removeFromWhitelist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "executeWhitelisted", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50611248806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a723058200759d9736c7b0074bec4c761a4c2afe1f92448d2e5c774b10eac839b4f00324b0029", - "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3200000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a723058200759d9736c7b0074bec4c761a4c2afe1f92448d2e5c774b10eac839b4f00324b0029", - "sourceMap": "311:2199:20:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;311:2199:20;;;;;;;", - "deployedSourceMap": "311:2199:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2006:502;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2006:502:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;520:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;520:46:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:28:4;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1550:202:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1550:202:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:48:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;353:48:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;689:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;689:298:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1136:260:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;407:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;407:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;407:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2006:502;2105:4;2235:7;;;;;;;;;;;2222:29;;;2252:10;2222:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2222:41:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2222:41:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2222:41:20;;;;;;;;;;;;;;;;2214:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2323:13;:17;2337:2;2323:17;;;;;;;;;;;;;;;;;;;;;;;;;2315:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2396:7;;;;;;;;;;;:33;;;2430:2;2434:5;2441:4;2447:19;2396:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2396:71:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2396:71:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2396:71:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2396:71:20;;;;;;;;;;;;;;;;2388:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2006:502;;;;;:::o;520:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;626:248:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:9;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1550:202:20:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1652:13:20;:22;1666:7;1652:22;;;;;;;;;;;;;;;;;;;;;;;;;1644:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1740:5;1715:13;:22;1729:7;1715:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1550:202;:::o;353:48::-;;;;;;;;;;;;;;;;;;;;:::o;689:298::-;780:9;835:15;753:12;:10;:12::i;:::-;792:1;780:13;;775:206;799:8;:15;795:1;:19;775:206;;;853:8;862:1;853:11;;;;;;;;;;;;;;;;;;835:29;;897:1;886:7;:12;;;;878:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;966:4;941:13;:22;955:7;941:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;816:3;;;;;;;775:206;;;689:298;;;:::o;1136:260::-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1244:1:20;1233:7;:12;;;;1225:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1293:13;:22;1307:7;1293:22;;;;;;;;;;;;;;;;;;;;;;;;;1292:23;1284:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1385:4;1360:13;:22;1374:7;1360:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1136:260;:::o;407:40::-;;;;;;;;;;;;;;;;;;;;:::o;442:300:4:-;656:1;644:7;;;;;;;;;;;636:21;;;628:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;724:10;700:7;;:35;;;;;;;;;;;;;;;;;;442:300::o", - "source": "pragma solidity 0.4.24;\nimport \"../base/Module.sol\";\nimport \"../base/ModuleManager.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/Enum.sol\";\n\n\n/// @title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n/// @author Stefan George - \ncontract WhitelistModule is Module {\n\n string public constant NAME = \"Whitelist Module\";\n string public constant VERSION = \"0.0.2\";\n\n // isWhitelisted mapping maps destination address to boolean.\n mapping (address => bool) public isWhitelisted;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param accounts List of whitelisted accounts.\n function setup(address[] accounts)\n public\n {\n setManager();\n for (uint256 i = 0; i < accounts.length; i++) {\n address account = accounts[i];\n require(account != 0, \"Invalid account provided\");\n isWhitelisted[account] = true;\n }\n }\n\n /// @dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function addToWhitelist(address account)\n public\n authorized\n {\n require(account != 0, \"Invalid account provided\");\n require(!isWhitelisted[account], \"Account is already whitelisted\");\n isWhitelisted[account] = true;\n }\n\n /// @dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function removeFromWhitelist(address account)\n public\n authorized\n {\n require(isWhitelisted[account], \"Account is not whitelisted\");\n isWhitelisted[account] = false;\n }\n\n /// @dev Returns if Safe transaction is to a whitelisted destination.\n /// @param to Whitelisted destination address.\n /// @param value Not checked.\n /// @param data Not checked.\n /// @return Returns if transaction can be executed.\n function executeWhitelisted(address to, uint256 value, bytes data)\n public\n returns (bool)\n {\n // Only Safe owners are allowed to execute transactions to whitelisted accounts.\n require(OwnerManager(manager).isOwner(msg.sender), \"Method can only be called by an owner\");\n require(isWhitelisted[to], \"Target account is not whitelisted\");\n require(manager.execTransactionFromModule(to, value, data, Enum.Operation.Call), \"Could not execute transaction\");\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", - "exportedSymbols": { - "WhitelistModule": [ - 2716 - ] - }, - "id": 2717, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2564, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:20" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2565, - "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 936, - "src": "24:28:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "../base/ModuleManager.sol", - "id": 2566, - "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 1213, - "src": "53:35:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2567, - "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 1653, - "src": "89:34:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 2568, - "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 1660, - "src": "124:28:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2569, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "339:6:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "id": 2570, - "nodeType": "InheritanceSpecifier", - "src": "339:6:20" - } - ], - "contractDependencies": [ - 935, - 1693, - 1735 - ], - "contractKind": "contract", - "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2716, - "linearizedBaseContracts": [ - 2716, - 935, - 1693, - 1735 - ], - "name": "WhitelistModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2573, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2716, - "src": "353:48:20", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2571, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "353:6:20", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "57686974656c697374204d6f64756c65", - "id": 2572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "383:18:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_84d69d03a7c747e8eefe7cc2b9e87b566cfc57cc90e4ed88f03f9c9780b7d4e6", - "typeString": "literal_string \"Whitelist Module\"" - }, - "value": "Whitelist Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2576, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2716, - "src": "407:40:20", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2574, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "407:6:20", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e32", - "id": 2575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "440:7:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" - }, - "value": "0.0.2" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2580, - "name": "isWhitelisted", - "nodeType": "VariableDeclaration", - "scope": 2716, - "src": "520:46:20", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 2579, - "keyType": { - "id": 2577, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "529:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "520:25:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 2578, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "540:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2621, - "nodeType": "Block", - "src": "743:244:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2586, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "753:10:20", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "753:12:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2588, - "nodeType": "ExpressionStatement", - "src": "753:12:20" - }, - { - "body": { - "id": 2619, - "nodeType": "Block", - "src": "821:160:20", - "statements": [ - { - "assignments": [ - 2601 - ], - "declarations": [ - { - "constant": false, - "id": 2601, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 2622, - "src": "835:15:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2600, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "835:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2605, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2602, - "name": "accounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2583, - "src": "853:8:20", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2604, - "indexExpression": { - "argumentTypes": null, - "id": 2603, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "862:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "853:11:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "835:29:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2607, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "886:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "897:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "886:12:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "900:26:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", - "typeString": "literal_string \"Invalid account provided\"" - }, - "value": "Invalid account provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", - "typeString": "literal_string \"Invalid account provided\"" - } - ], - "id": 2606, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "878:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "878:49:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2612, - "nodeType": "ExpressionStatement", - "src": "878:49:20" - }, - { - "expression": { - "argumentTypes": null, - "id": 2617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2613, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "941:13:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2615, - "indexExpression": { - "argumentTypes": null, - "id": 2614, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "955:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "941:22:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "966:4:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "941:29:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2618, - "nodeType": "ExpressionStatement", - "src": "941:29:20" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2593, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "795:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2594, - "name": "accounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2583, - "src": "799:8:20", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "799:15:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "795:19:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2620, - "initializationExpression": { - "assignments": [ - 2590 - ], - "declarations": [ - { - "constant": false, - "id": 2590, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2622, - "src": "780:9:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2589, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "780:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2592, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "792:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "780:13:20" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "816:3:20", - "subExpression": { - "argumentTypes": null, - "id": 2597, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "816:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2599, - "nodeType": "ExpressionStatement", - "src": "816:3:20" - }, - "nodeType": "ForStatement", - "src": "775:206:20" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 2622, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2583, - "name": "accounts", - "nodeType": "VariableDeclaration", - "scope": 2622, - "src": "704:18:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "704:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2582, - "length": null, - "nodeType": "ArrayTypeName", - "src": "704:9:20", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "703:20:20" - }, - "payable": false, - "returnParameters": { - "id": 2585, - "nodeType": "ParameterList", - "parameters": [], - "src": "743:0:20" - }, - "scope": 2716, - "src": "689:298:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2650, - "nodeType": "Block", - "src": "1215:181:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2630, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1233:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1244:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1233:12:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1247:26:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", - "typeString": "literal_string \"Invalid account provided\"" - }, - "value": "Invalid account provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", - "typeString": "literal_string \"Invalid account provided\"" - } - ], - "id": 2629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1225:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1225:49:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2635, - "nodeType": "ExpressionStatement", - "src": "1225:49:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1292:23:20", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2637, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1293:13:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2639, - "indexExpression": { - "argumentTypes": null, - "id": 2638, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1307:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1293:22:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", - "id": 2641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1317:32:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42f0c01c0b06bc5e652009543318e4fd67cfba114702c7f55fad1ff0c3c82ad8", - "typeString": "literal_string \"Account is already whitelisted\"" - }, - "value": "Account is already whitelisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42f0c01c0b06bc5e652009543318e4fd67cfba114702c7f55fad1ff0c3c82ad8", - "typeString": "literal_string \"Account is already whitelisted\"" - } - ], - "id": 2636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1284:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1284:66:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2643, - "nodeType": "ExpressionStatement", - "src": "1284:66:20" - }, - { - "expression": { - "argumentTypes": null, - "id": 2648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2644, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1360:13:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2646, - "indexExpression": { - "argumentTypes": null, - "id": 2645, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1374:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1360:22:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1385:4:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1360:29:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2649, - "nodeType": "ExpressionStatement", - "src": "1360:29:20" - } - ] - }, - "documentation": "@dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2651, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2627, - "modifierName": { - "argumentTypes": null, - "id": 2626, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "1200:10:20", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1200:10:20" - } - ], - "name": "addToWhitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2625, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2624, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "1160:15:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1160:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1159:17:20" - }, - "payable": false, - "returnParameters": { - "id": 2628, - "nodeType": "ParameterList", - "parameters": [], - "src": "1215:0:20" - }, - "scope": 2716, - "src": "1136:260:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2671, - "nodeType": "Block", - "src": "1634:118:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2659, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1652:13:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2661, - "indexExpression": { - "argumentTypes": null, - "id": 2660, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1666:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1652:22:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", - "id": 2662, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1676:28:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2f56605dd36b69a55672cdc762e8d3959c002a474a30a6774bba38bb65f718e1", - "typeString": "literal_string \"Account is not whitelisted\"" - }, - "value": "Account is not whitelisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2f56605dd36b69a55672cdc762e8d3959c002a474a30a6774bba38bb65f718e1", - "typeString": "literal_string \"Account is not whitelisted\"" - } - ], - "id": 2658, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1644:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1644:61:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2664, - "nodeType": "ExpressionStatement", - "src": "1644:61:20" - }, - { - "expression": { - "argumentTypes": null, - "id": 2669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2665, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1715:13:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2667, - "indexExpression": { - "argumentTypes": null, - "id": 2666, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1729:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1715:22:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1740:5:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "1715:30:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2670, - "nodeType": "ExpressionStatement", - "src": "1715:30:20" - } - ] - }, - "documentation": "@dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2672, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2656, - "modifierName": { - "argumentTypes": null, - "id": 2655, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "1619:10:20", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1619:10:20" - } - ], - "name": "removeFromWhitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2653, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 2672, - "src": "1579:15:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1579:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1578:17:20" - }, - "payable": false, - "returnParameters": { - "id": 2657, - "nodeType": "ParameterList", - "parameters": [], - "src": "1634:0:20" - }, - "scope": 2716, - "src": "1550:202:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2714, - "nodeType": "Block", - "src": "2115:393:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2688, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "2252:3:20", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2252:10:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2685, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2235:7:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 2684, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2222:12:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2222:21:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", - "typeString": "contract OwnerManager" - } - }, - "id": 2687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1602, - "src": "2222:29:20", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 2690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2222:41:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 2691, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2265:39:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", - "typeString": "literal_string \"Method can only be called by an owner\"" - }, - "value": "Method can only be called by an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", - "typeString": "literal_string \"Method can only be called by an owner\"" - } - ], - "id": 2683, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2214:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2214:91:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2693, - "nodeType": "ExpressionStatement", - "src": "2214:91:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2695, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "2323:13:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2697, - "indexExpression": { - "argumentTypes": null, - "id": 2696, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "2337:2:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2323:17:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", - "id": 2698, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2342:35:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9a154d7dadc01125e34b410c8bdd8fd2546fbbac90b22b0d92787a072cf6fc42", - "typeString": "literal_string \"Target account is not whitelisted\"" - }, - "value": "Target account is not whitelisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9a154d7dadc01125e34b410c8bdd8fd2546fbbac90b22b0d92787a072cf6fc42", - "typeString": "literal_string \"Target account is not whitelisted\"" - } - ], - "id": 2694, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2315:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2315:63:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2700, - "nodeType": "ExpressionStatement", - "src": "2315:63:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2704, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "2430:2:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2705, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2676, - "src": "2434:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2706, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2678, - "src": "2441:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2707, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "2447:4:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "2447:14:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2709, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2447:19:20", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2702, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2396:7:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 2703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "2396:33:20", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2396:71:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2711, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2469:31:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", - "typeString": "literal_string \"Could not execute transaction\"" - }, - "value": "Could not execute transaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", - "typeString": "literal_string \"Could not execute transaction\"" - } - ], - "id": 2701, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2388:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2388:113:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2713, - "nodeType": "ExpressionStatement", - "src": "2388:113:20" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is to a whitelisted destination.\n @param to Whitelisted destination address.\n @param value Not checked.\n @param data Not checked.\n @return Returns if transaction can be executed.", - "id": 2715, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeWhitelisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2679, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2674, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2034:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2673, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2034:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2676, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2046:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2675, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2046:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2678, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2061:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2677, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2061:5:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2033:39:20" - }, - "payable": false, - "returnParameters": { - "id": 2682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2681, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2105:4:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2680, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2105:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2104:6:20" - }, - "scope": 2716, - "src": "2006:502:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2717, - "src": "311:2199:20" - } - ], - "src": "0:2511:20" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", - "exportedSymbols": { - "WhitelistModule": [ - 2716 - ] - }, - "id": 2717, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2564, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:20" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2565, - "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 936, - "src": "24:28:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "../base/ModuleManager.sol", - "id": 2566, - "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 1213, - "src": "53:35:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2567, - "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 1653, - "src": "89:34:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 2568, - "nodeType": "ImportDirective", - "scope": 2717, - "sourceUnit": 1660, - "src": "124:28:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2569, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 935, - "src": "339:6:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$935", - "typeString": "contract Module" - } - }, - "id": 2570, - "nodeType": "InheritanceSpecifier", - "src": "339:6:20" - } - ], - "contractDependencies": [ - 935, - 1693, - 1735 - ], - "contractKind": "contract", - "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2716, - "linearizedBaseContracts": [ - 2716, - 935, - 1693, - 1735 - ], - "name": "WhitelistModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2573, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2716, - "src": "353:48:20", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2571, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "353:6:20", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "57686974656c697374204d6f64756c65", - "id": 2572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "383:18:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_84d69d03a7c747e8eefe7cc2b9e87b566cfc57cc90e4ed88f03f9c9780b7d4e6", - "typeString": "literal_string \"Whitelist Module\"" - }, - "value": "Whitelist Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2576, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2716, - "src": "407:40:20", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2574, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "407:6:20", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e32", - "id": 2575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "440:7:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b30367effb941b728181f67f3bd24a38a4fff408ee7fb3b074425c9fb5e9be74", - "typeString": "literal_string \"0.0.2\"" - }, - "value": "0.0.2" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2580, - "name": "isWhitelisted", - "nodeType": "VariableDeclaration", - "scope": 2716, - "src": "520:46:20", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 2579, - "keyType": { - "id": 2577, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "529:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "520:25:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 2578, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "540:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2621, - "nodeType": "Block", - "src": "743:244:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2586, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "753:10:20", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "753:12:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2588, - "nodeType": "ExpressionStatement", - "src": "753:12:20" - }, - { - "body": { - "id": 2619, - "nodeType": "Block", - "src": "821:160:20", - "statements": [ - { - "assignments": [ - 2601 - ], - "declarations": [ - { - "constant": false, - "id": 2601, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 2622, - "src": "835:15:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2600, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "835:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2605, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2602, - "name": "accounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2583, - "src": "853:8:20", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2604, - "indexExpression": { - "argumentTypes": null, - "id": 2603, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "862:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "853:11:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "835:29:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2607, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "886:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "897:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "886:12:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "900:26:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", - "typeString": "literal_string \"Invalid account provided\"" - }, - "value": "Invalid account provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", - "typeString": "literal_string \"Invalid account provided\"" - } - ], - "id": 2606, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "878:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "878:49:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2612, - "nodeType": "ExpressionStatement", - "src": "878:49:20" - }, - { - "expression": { - "argumentTypes": null, - "id": 2617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2613, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "941:13:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2615, - "indexExpression": { - "argumentTypes": null, - "id": 2614, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "955:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "941:22:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "966:4:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "941:29:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2618, - "nodeType": "ExpressionStatement", - "src": "941:29:20" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2593, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "795:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2594, - "name": "accounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2583, - "src": "799:8:20", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "799:15:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "795:19:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2620, - "initializationExpression": { - "assignments": [ - 2590 - ], - "declarations": [ - { - "constant": false, - "id": 2590, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2622, - "src": "780:9:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2589, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "780:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2592, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "792:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "780:13:20" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "816:3:20", - "subExpression": { - "argumentTypes": null, - "id": 2597, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "816:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2599, - "nodeType": "ExpressionStatement", - "src": "816:3:20" - }, - "nodeType": "ForStatement", - "src": "775:206:20" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 2622, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2583, - "name": "accounts", - "nodeType": "VariableDeclaration", - "scope": 2622, - "src": "704:18:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "704:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2582, - "length": null, - "nodeType": "ArrayTypeName", - "src": "704:9:20", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "703:20:20" - }, - "payable": false, - "returnParameters": { - "id": 2585, - "nodeType": "ParameterList", - "parameters": [], - "src": "743:0:20" - }, - "scope": 2716, - "src": "689:298:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2650, - "nodeType": "Block", - "src": "1215:181:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2630, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1233:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1244:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1233:12:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1247:26:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", - "typeString": "literal_string \"Invalid account provided\"" - }, - "value": "Invalid account provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_da3a197794c99763c55550690a7eddbab5a672fb560947793aaf405a2b5f9490", - "typeString": "literal_string \"Invalid account provided\"" - } - ], - "id": 2629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1225:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1225:49:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2635, - "nodeType": "ExpressionStatement", - "src": "1225:49:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1292:23:20", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2637, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1293:13:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2639, - "indexExpression": { - "argumentTypes": null, - "id": 2638, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1307:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1293:22:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", - "id": 2641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1317:32:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42f0c01c0b06bc5e652009543318e4fd67cfba114702c7f55fad1ff0c3c82ad8", - "typeString": "literal_string \"Account is already whitelisted\"" - }, - "value": "Account is already whitelisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42f0c01c0b06bc5e652009543318e4fd67cfba114702c7f55fad1ff0c3c82ad8", - "typeString": "literal_string \"Account is already whitelisted\"" - } - ], - "id": 2636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1284:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1284:66:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2643, - "nodeType": "ExpressionStatement", - "src": "1284:66:20" - }, - { - "expression": { - "argumentTypes": null, - "id": 2648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2644, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1360:13:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2646, - "indexExpression": { - "argumentTypes": null, - "id": 2645, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2624, - "src": "1374:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1360:22:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1385:4:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1360:29:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2649, - "nodeType": "ExpressionStatement", - "src": "1360:29:20" - } - ] - }, - "documentation": "@dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2651, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2627, - "modifierName": { - "argumentTypes": null, - "id": 2626, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "1200:10:20", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1200:10:20" - } - ], - "name": "addToWhitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2625, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2624, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "1160:15:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1160:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1159:17:20" - }, - "payable": false, - "returnParameters": { - "id": 2628, - "nodeType": "ParameterList", - "parameters": [], - "src": "1215:0:20" - }, - "scope": 2716, - "src": "1136:260:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2671, - "nodeType": "Block", - "src": "1634:118:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2659, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1652:13:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2661, - "indexExpression": { - "argumentTypes": null, - "id": 2660, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1666:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1652:22:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", - "id": 2662, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1676:28:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2f56605dd36b69a55672cdc762e8d3959c002a474a30a6774bba38bb65f718e1", - "typeString": "literal_string \"Account is not whitelisted\"" - }, - "value": "Account is not whitelisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2f56605dd36b69a55672cdc762e8d3959c002a474a30a6774bba38bb65f718e1", - "typeString": "literal_string \"Account is not whitelisted\"" - } - ], - "id": 2658, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "1644:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1644:61:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2664, - "nodeType": "ExpressionStatement", - "src": "1644:61:20" - }, - { - "expression": { - "argumentTypes": null, - "id": 2669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2665, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "1715:13:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2667, - "indexExpression": { - "argumentTypes": null, - "id": 2666, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "1729:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1715:22:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1740:5:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "1715:30:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2670, - "nodeType": "ExpressionStatement", - "src": "1715:30:20" - } - ] - }, - "documentation": "@dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2672, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2656, - "modifierName": { - "argumentTypes": null, - "id": 2655, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "1619:10:20", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1619:10:20" - } - ], - "name": "removeFromWhitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2653, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 2672, - "src": "1579:15:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1579:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1578:17:20" - }, - "payable": false, - "returnParameters": { - "id": 2657, - "nodeType": "ParameterList", - "parameters": [], - "src": "1634:0:20" - }, - "scope": 2716, - "src": "1550:202:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2714, - "nodeType": "Block", - "src": "2115:393:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2688, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4015, - "src": "2252:3:20", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2252:10:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2685, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2235:7:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - ], - "id": 2684, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1652, - "src": "2222:12:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1652_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2222:21:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1652", - "typeString": "contract OwnerManager" - } - }, - "id": 2687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1602, - "src": "2222:29:20", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 2690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2222:41:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 2691, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2265:39:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", - "typeString": "literal_string \"Method can only be called by an owner\"" - }, - "value": "Method can only be called by an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4df072353ff501a1071e1cc3e2eb3ee0ebb21a35321efe90c0960bf2f4356640", - "typeString": "literal_string \"Method can only be called by an owner\"" - } - ], - "id": 2683, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2214:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2214:91:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2693, - "nodeType": "ExpressionStatement", - "src": "2214:91:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2695, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "2323:13:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2697, - "indexExpression": { - "argumentTypes": null, - "id": 2696, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "2337:2:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2323:17:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", - "id": 2698, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2342:35:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9a154d7dadc01125e34b410c8bdd8fd2546fbbac90b22b0d92787a072cf6fc42", - "typeString": "literal_string \"Target account is not whitelisted\"" - }, - "value": "Target account is not whitelisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9a154d7dadc01125e34b410c8bdd8fd2546fbbac90b22b0d92787a072cf6fc42", - "typeString": "literal_string \"Target account is not whitelisted\"" - } - ], - "id": 2694, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2315:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2315:63:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2700, - "nodeType": "ExpressionStatement", - "src": "2315:63:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2704, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "2430:2:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2705, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2676, - "src": "2434:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2706, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2678, - "src": "2441:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2707, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "2447:4:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1659_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1658, - "src": "2447:14:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1658_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2709, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2447:19:20", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1658", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2702, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "2396:7:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1212", - "typeString": "contract ModuleManager" - } - }, - "id": 2703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1138, - "src": "2396:33:20", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1658_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2396:71:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2711, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2469:31:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", - "typeString": "literal_string \"Could not execute transaction\"" - }, - "value": "Could not execute transaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", - "typeString": "literal_string \"Could not execute transaction\"" - } - ], - "id": 2701, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4018, - 4019 - ], - "referencedDeclaration": 4019, - "src": "2388:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2388:113:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2713, - "nodeType": "ExpressionStatement", - "src": "2388:113:20" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is to a whitelisted destination.\n @param to Whitelisted destination address.\n @param value Not checked.\n @param data Not checked.\n @return Returns if transaction can be executed.", - "id": 2715, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeWhitelisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2679, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2674, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2034:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2673, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2034:7:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2676, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2046:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2675, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2046:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2678, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2061:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2677, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2061:5:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2033:39:20" - }, - "payable": false, - "returnParameters": { - "id": 2682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2681, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2715, - "src": "2105:4:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2680, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2105:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2104:6:20" - }, - "scope": 2716, - "src": "2006:502:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2717, - "src": "311:2199:20" - } - ], - "src": "0:2511:20" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x77b5702ac70c2e46eb8a44ae6bdb9a26e9a3d740", - "transactionHash": "0x1a9cc8c89e0438c8a7a841118d223e827d8ba0e4b74d96abc05b9d3ff71db5d9" - }, - "1538739975997": { - "events": {}, - "links": {}, - "address": "0x67b5656d60a809915323bf2c40a8bef15a152e3e", - "transactionHash": "0x4dde124f9f1b69a327602dc7442df559a245fb0cde540a12f1c2ee04e47354a1" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-10-05T14:43:41.429Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/ApproveAndCallFallBack.json b/safe-contracts/build/contracts/test/ApproveAndCallFallBack.json deleted file mode 100644 index c944830f..00000000 --- a/safe-contracts/build/contracts/test/ApproveAndCallFallBack.json +++ /dev/null @@ -1,14216 +0,0 @@ -{ - "contractName": "ApproveAndCallFallBack", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "receiveApproval", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract TestToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-09-26T08:32:07.651Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/ERC20Interface.json b/safe-contracts/build/contracts/test/ERC20Interface.json deleted file mode 100644 index 223532fb..00000000 --- a/safe-contracts/build/contracts/test/ERC20Interface.json +++ /dev/null @@ -1,14363 +0,0 @@ -{ - "contractName": "ERC20Interface", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "tokens", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "tokenOwner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "tokens", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenOwner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenOwner", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "remaining", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract TestToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-09-26T08:32:07.653Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/EmptyToken.json b/safe-contracts/build/contracts/test/EmptyToken.json deleted file mode 100644 index 1a470ff2..00000000 --- a/safe-contracts/build/contracts/test/EmptyToken.json +++ /dev/null @@ -1,14205 +0,0 @@ -{ - "contractName": "EmptyToken", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "tokens", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "tokenOwner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "tokens", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenOwner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenOwner", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "remaining", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "approveAndCall", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "tokenAddress", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transferAnyERC20Token", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600160146101000a81548160ff021916908360ff160217905550600160149054906101000a900460ff1660ff16600a0a620f424002600281905550600254600360008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6002546040518082815260200191505060405180910390a36112718061018d6000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146100ca57806318160ddd1461012f57806323b872dd1461015a578063313ce567146101df57806370a082311461021057806379ba5097146102675780638da5cb5b1461027e578063a9059cbb146102d5578063cae9ca511461033a578063d4ee1d90146103e5578063dc39d06d1461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100d657600080fd5b50610115600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061055b565b604051808215151515815260200191505060405180910390f35b34801561013b57600080fd5b5061014461064d565b6040518082815260200191505060405180910390f35b34801561016657600080fd5b506101c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a8565b604051808215151515815260200191505060405180910390f35b3480156101eb57600080fd5b506101f4610953565b604051808260ff1660ff16815260200191505060405180910390f35b34801561021c57600080fd5b50610251600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610966565b6040518082815260200191505060405180910390f35b34801561027357600080fd5b5061027c6109af565b005b34801561028a57600080fd5b50610293610b4e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e157600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b73565b604051808215151515815260200191505060405180910390f35b34801561034657600080fd5b506103cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610d0e565b604051808215151515815260200191505060405180910390f35b3480156103f157600080fd5b506103fa610f5d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f83565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e7565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061116e565b005b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60006106a3600360008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460025461120d90919063ffffffff16565b905090565b60006106fc82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506107ce82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600160149054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a0b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bc782600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c5c82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610eeb578082015181840152602081019050610ed0565b50505050905090810190601f168015610f185780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610f3a57600080fd5b505af1158015610f4e573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe057600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110a457600080fd5b505af11580156110b8573d6000803e3d6000fd5b505050506040513d60208110156110ce57600080fd5b8101908080519060200190929190505050905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111c957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561121e57600080fd5b818303905092915050565b6000818301905082811015151561123f57600080fd5b929150505600a165627a7a7230582086ec8e422bd8c5ddad32eb09a806eeb6d1ed5c20827c3010d77b0278f363ecbe0029", - "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146100ca57806318160ddd1461012f57806323b872dd1461015a578063313ce567146101df57806370a082311461021057806379ba5097146102675780638da5cb5b1461027e578063a9059cbb146102d5578063cae9ca511461033a578063d4ee1d90146103e5578063dc39d06d1461043c578063dd62ed3e146104a1578063f2fde38b14610518575b600080fd5b3480156100d657600080fd5b50610115600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061055b565b604051808215151515815260200191505060405180910390f35b34801561013b57600080fd5b5061014461064d565b6040518082815260200191505060405180910390f35b34801561016657600080fd5b506101c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106a8565b604051808215151515815260200191505060405180910390f35b3480156101eb57600080fd5b506101f4610953565b604051808260ff1660ff16815260200191505060405180910390f35b34801561021c57600080fd5b50610251600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610966565b6040518082815260200191505060405180910390f35b34801561027357600080fd5b5061027c6109af565b005b34801561028a57600080fd5b50610293610b4e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e157600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b73565b604051808215151515815260200191505060405180910390f35b34801561034657600080fd5b506103cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610d0e565b604051808215151515815260200191505060405180910390f35b3480156103f157600080fd5b506103fa610f5d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610487600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f83565b604051808215151515815260200191505060405180910390f35b3480156104ad57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e7565b6040518082815260200191505060405180910390f35b34801561052457600080fd5b50610559600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061116e565b005b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60006106a3600360008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460025461120d90919063ffffffff16565b905090565b60006106fc82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506107ce82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600160149054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a0b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bc782600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120d90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c5c82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122990919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610eeb578082015181840152602081019050610ed0565b50505050905090810190601f168015610f185780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610f3a57600080fd5b505af1158015610f4e573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe057600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110a457600080fd5b505af11580156110b8573d6000803e3d6000fd5b505050506040513d60208110156110ce57600080fd5b8101908080519060200190929190505050905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111c957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561121e57600080fd5b818303905092915050565b6000818301905082811015151561123f57600080fd5b929150505600a165627a7a7230582086ec8e422bd8c5ddad32eb09a806eeb6d1ed5c20827c3010d77b0278f363ecbe0029", - "sourceMap": "3506:5189:25:-;;;3916:200;8:9:-1;5:2;;;30:1;27;20:12;5:2;3916:200:25;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;3958:2;3947:8;;:13;;;;;;;;;;;;;;;;;;4004:8;;;;;;;;;;;3999:14;;3995:2;:18;3985:7;:28;3970:12;:43;;;;4041:12;;4023:8;:15;4032:5;;;;;;;;;;;4023:15;;;;;;;;;;;;;;;:30;;;;4089:5;;;;;;;;;;;4068:41;;4085:1;4068:41;;;4096:12;;4068:41;;;;;;;;;;;;;;;;;;3506:5189;;;;;;", - "deployedSourceMap": "3506:5189:25:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8264:8;;;5865:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5865:204:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4303:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4303:112:25;;;;;;;;;;;;;;;;;;;;;;;6601:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6601:337:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3587:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3587:21:25;;;;;;;;;;;;;;;;;;;;;;;;;;;4636:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4636:118:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:25;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:25;;;;;;;;;;;;;;;;;;;;;;;;;;;5097:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5097:262:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7724:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7724:312:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:25;;;;;;;;;;;;;;;;;;;;;;;;;;;8511:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8511:182:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7219:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7219:145:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5865:204;5928:12;5983:6;5952:7;:19;5960:10;5952:19;;;;;;;;;;;;;;;:28;5972:7;5952:28;;;;;;;;;;;;;;;:37;;;;6025:7;6004:37;;6013:10;6004:37;;;6034:6;6004:37;;;;;;;;;;;;;;;;;;6058:4;6051:11;;5865:204;;;;:::o;4303:112::-;4347:4;4370:38;4387:8;:20;4404:1;4387:20;;;;;;;;;;;;;;;;4370:12;;:16;;:38;;;;:::i;:::-;4363:45;;4303:112;:::o;6601:337::-;6678:12;6719:26;6738:6;6719:8;:14;6728:4;6719:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;6702:8;:14;6711:4;6702:14;;;;;;;;;;;;;;;:43;;;;6783:37;6813:6;6783:7;:13;6791:4;6783:13;;;;;;;;;;;;;;;:25;6797:10;6783:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;6755:7;:13;6763:4;6755:13;;;;;;;;;;;;;;;:25;6769:10;6755:25;;;;;;;;;;;;;;;:65;;;;6845:24;6862:6;6845:8;:12;6854:2;6845:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;6830:8;:12;6839:2;6830:12;;;;;;;;;;;;;;;:39;;;;6899:2;6884:26;;6893:4;6884:26;;;6903:6;6884:26;;;;;;;;;;;;;;;;;;6927:4;6920:11;;6601:337;;;;;:::o;3587:21::-;;;;;;;;;;;;;:::o;4636:118::-;4696:12;4727:8;:20;4736:10;4727:20;;;;;;;;;;;;;;;;4720:27;;4636:118;;;:::o;3065:191::-;3131:8;;;;;;;;;;;3117:22;;:10;:22;;;3109:31;;;;;;;;3183:8;;;;;;;;;;;3155:37;;3176:5;;;;;;;;;;;3155:37;;;;;;;;;;;;3210:8;;;;;;;;;;;3202:5;;:16;;;;;;;;;;;;;;;;;;3247:1;3228:8;;:21;;;;;;;;;;;;;;;;;;3065:191::o;2684:20::-;;;;;;;;;;;;;:::o;5097:262::-;5156:12;5203:32;5228:6;5203:8;:20;5212:10;5203:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5180:8;:20;5189:10;5180:20;;;;;;;;;;;;;;;:55;;;;5260:24;5277:6;5260:8;:12;5269:2;5260:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;5245:8;:12;5254:2;5245:12;;;;;;;;;;;;;;;:39;;;;5320:2;5299:32;;5308:10;5299:32;;;5324:6;5299:32;;;;;;;;;;;;;;;;;;5348:4;5341:11;;5097:262;;;;:::o;7724:312::-;7806:12;7861:6;7830:7;:19;7838:10;7830:19;;;;;;;;;;;;;;;:28;7850:7;7830:28;;;;;;;;;;;;;;;:37;;;;7903:7;7882:37;;7891:10;7882:37;;;7912:6;7882:37;;;;;;;;;;;;;;;;;;7952:7;7929:47;;;7977:10;7989:6;7997:4;8003;7929:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7929:79:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7929:79:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7929:79:25;;;;8025:4;8018:11;;7724:312;;;;;:::o;2710:23::-;;;;;;;;;;;;;:::o;8511:182::-;8603:12;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;8649:12;8634:37;;;8672:5;;;;;;;;;;;8679:6;8634:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8634:52:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8634:52:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8634:52:25;;;;;;;;;;;;;;;;8627:59;;8511:182;;;;:::o;7219:145::-;7296:14;7329:7;:19;7337:10;7329:19;;;;;;;;;;;;;;;:28;7349:7;7329:28;;;;;;;;;;;;;;;;7322:35;;7219:145;;;;:::o;2960:100::-;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;3044:9;3033:8;;:20;;;;;;;;;;;;;;;;;;2960:100;:::o;775:111::-;827:6;858:1;853;:6;;845:15;;;;;;;;878:1;874;:5;870:9;;775:111;;;;:::o;659:::-;711:6;737:1;733;:5;729:9;;761:1;756;:6;;748:15;;;;;;;;659:111;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract EmptyToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/EmptyToken.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/EmptyToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3051 - ], - "ERC20Interface": [ - 3039 - ], - "EmptyToken": [ - 3415 - ], - "Owned": [ - 3120 - ], - "SafeMath": [ - 2972 - ] - }, - "id": 3416, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2877, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2972, - "linearizedBaseContracts": [ - 2972 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2898, - "nodeType": "Block", - "src": "719:51:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2886, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2884, - "src": "729:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2887, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "733:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2888, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2881, - "src": "737:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2891, - "nodeType": "ExpressionStatement", - "src": "729:9:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2893, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2884, - "src": "756:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2894, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "761:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2892, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2897, - "nodeType": "ExpressionStatement", - "src": "748:15:25" - } - ] - }, - "documentation": null, - "id": 2899, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2882, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2879, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "672:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2878, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2881, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "680:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2880, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2884, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "711:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2883, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:25" - }, - "scope": 2972, - "src": "659:111:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2920, - "nodeType": "Block", - "src": "835:51:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2909, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2903, - "src": "853:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2910, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "858:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2908, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2913, - "nodeType": "ExpressionStatement", - "src": "845:15:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2914, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "870:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2915, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "874:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2916, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2903, - "src": "878:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2919, - "nodeType": "ExpressionStatement", - "src": "870:9:25" - } - ] - }, - "documentation": null, - "id": 2921, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2904, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2901, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2921, - "src": "788:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2900, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2903, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2921, - "src": "796:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2902, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2907, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2906, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2921, - "src": "827:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2905, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:25" - }, - "scope": 2972, - "src": "775:111:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2948, - "nodeType": "Block", - "src": "951:65:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2930, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2928, - "src": "961:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2931, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "965:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 2932, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "969:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2935, - "nodeType": "ExpressionStatement", - "src": "961:9:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2937, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "988:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2938, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2940, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2928, - "src": "998:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2941, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "1002:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2943, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "1007:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2936, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2947, - "nodeType": "ExpressionStatement", - "src": "980:29:25" - } - ] - }, - "documentation": null, - "id": 2949, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2926, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2923, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2949, - "src": "904:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2922, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2925, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2949, - "src": "912:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2924, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2929, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2928, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2949, - "src": "943:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2927, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:25" - }, - "scope": 2972, - "src": "891:125:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2970, - "nodeType": "Block", - "src": "1081:50:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2959, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2953, - "src": "1099:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2958, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2963, - "nodeType": "ExpressionStatement", - "src": "1091:14:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 2968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2964, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "1115:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2965, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2951, - "src": "1119:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2966, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2953, - "src": "1123:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2969, - "nodeType": "ExpressionStatement", - "src": "1115:9:25" - } - ] - }, - "documentation": null, - "id": 2971, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2954, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2951, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2971, - "src": "1034:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2950, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2953, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2971, - "src": "1042:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2952, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2956, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2971, - "src": "1073:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2955, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:25" - }, - "scope": 2972, - "src": "1021:110:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3416, - "src": "636:497:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3039, - "linearizedBaseContracts": [ - 3039 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 2977, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2973, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:25" - }, - "payable": false, - "returnParameters": { - "id": 2976, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2975, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2977, - "src": "1473:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2974, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:25" - }, - "scope": 3039, - "src": "1425:54:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 2984, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2980, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2979, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 2984, - "src": "1503:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:25" - }, - "payable": false, - "returnParameters": { - "id": 2983, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2982, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 2984, - "src": "1548:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2981, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:25" - }, - "scope": 3039, - "src": "1484:78:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 2993, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2989, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2986, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "1586:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2985, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2988, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "1606:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2987, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:25" - }, - "payable": false, - "returnParameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2991, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "1648:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2990, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:25" - }, - "scope": 3039, - "src": "1567:97:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3002, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2995, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3002, - "src": "1687:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2994, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2997, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3002, - "src": "1699:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2996, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:25" - }, - "payable": false, - "returnParameters": { - "id": 3001, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3000, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3002, - "src": "1728:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2999, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:25" - }, - "scope": 3039, - "src": "1669:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3011, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3007, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3004, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "1764:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3003, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3006, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "1781:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3005, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3010, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3009, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "1810:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3008, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:25" - }, - "scope": 3039, - "src": "1747:77:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3022, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3018, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3013, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1851:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3012, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3015, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1865:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3014, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3017, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1877:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3016, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:25" - }, - "payable": false, - "returnParameters": { - "id": 3021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3020, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1906:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3019, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:25" - }, - "scope": 3039, - "src": "1829:91:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3030, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3029, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3024, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "1941:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3026, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "1963:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3028, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "1983:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3027, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:25" - }, - "src": "1926:70:25" - }, - { - "anonymous": false, - "documentation": null, - "id": 3038, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3032, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3038, - "src": "2016:26:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3031, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3034, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3038, - "src": "2044:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3033, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3036, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3038, - "src": "2069:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3035, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:25" - }, - "src": "2001:81:25" - } - ], - "scope": 3416, - "src": "1395:689:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3051, - "linearizedBaseContracts": [ - 3051 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3050, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3048, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3041, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2416:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3040, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3043, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2430:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3042, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3045, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2446:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3047, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2461:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:25" - }, - "payable": false, - "returnParameters": { - "id": 3049, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:25" - }, - "scope": 3051, - "src": "2391:89:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3416, - "src": "2353:129:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3120, - "linearizedBaseContracts": [ - 3120 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3053, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3120, - "src": "2684:20:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3055, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3120, - "src": "2710:23:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3061, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3060, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3057, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3061, - "src": "2767:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3056, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3059, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3061, - "src": "2790:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:25" - }, - "src": "2740:71:25" - }, - { - "body": { - "id": 3069, - "nodeType": "Block", - "src": "2838:35:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3064, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "2848:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3065, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3068, - "nodeType": "ExpressionStatement", - "src": "2848:18:25" - } - ] - }, - "documentation": null, - "id": 3070, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3062, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3063, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:25" - }, - "scope": 3120, - "src": "2817:56:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3080, - "nodeType": "Block", - "src": "2898:56:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3075, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "2930:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3072, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3078, - "nodeType": "ExpressionStatement", - "src": "2908:28:25" - }, - { - "id": 3079, - "nodeType": "PlaceholderStatement", - "src": "2946:1:25" - } - ] - }, - "documentation": null, - "id": 3081, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3071, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:25" - }, - "src": "2879:75:25", - "visibility": "internal" - }, - { - "body": { - "id": 3092, - "nodeType": "Block", - "src": "3023:37:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3088, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3033:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3089, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "3044:9:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3091, - "nodeType": "ExpressionStatement", - "src": "3033:20:25" - } - ] - }, - "documentation": null, - "id": 3093, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3086, - "modifierName": { - "argumentTypes": null, - "id": 3085, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "3013:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:25" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3083, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3093, - "src": "2987:17:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3082, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:25" - }, - "payable": false, - "returnParameters": { - "id": 3087, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:25" - }, - "scope": 3120, - "src": "2960:100:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3118, - "nodeType": "Block", - "src": "3099:157:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3097, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3099, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3131:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3096, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3102, - "nodeType": "ExpressionStatement", - "src": "3109:31:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3104, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "3176:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3105, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3183:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3103, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "3155:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3107, - "nodeType": "EmitStatement", - "src": "3150:42:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3108, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "3202:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3109, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3210:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "3202:16:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3112, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3228:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3117, - "nodeType": "ExpressionStatement", - "src": "3228:21:25" - } - ] - }, - "documentation": null, - "id": 3119, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3094, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3095, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:25" - }, - "scope": 3120, - "src": "3065:191:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3416, - "src": "2663:595:25" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3121, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3039, - "src": "3529:14:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3039", - "typeString": "contract ERC20Interface" - } - }, - "id": 3122, - "nodeType": "InheritanceSpecifier", - "src": "3529:14:25" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3123, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3120, - "src": "3545:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3120", - "typeString": "contract Owned" - } - }, - "id": 3124, - "nodeType": "InheritanceSpecifier", - "src": "3545:5:25" - } - ], - "contractDependencies": [ - 3039, - 3120 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3415, - "linearizedBaseContracts": [ - 3415, - 3120, - 3039 - ], - "name": "EmptyToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3127, - "libraryName": { - "contractScope": null, - "id": 3125, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2972, - "src": "3563:8:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2972", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3557:24:25", - "typeName": { - "id": 3126, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3576:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3129, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3587:21:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3128, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3587:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3131, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3614:17:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3130, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3614:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3135, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3638:33:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3134, - "keyType": { - "id": 3132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3646:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3638:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3133, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3657:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3141, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3677:52:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3140, - "keyType": { - "id": 3136, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3685:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3677:44:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3139, - "keyType": { - "id": 3137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3704:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3696:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3138, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3715:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3172, - "nodeType": "Block", - "src": "3937:179:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3144, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3129, - "src": "3947:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3958:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "3947:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3147, - "nodeType": "ExpressionStatement", - "src": "3947:13:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3148, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "3970:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3985:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3995:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3152, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3129, - "src": "4004:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3999:4:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3999:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3995:18:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3985:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3970:43:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3157, - "nodeType": "ExpressionStatement", - "src": "3970:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3158, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "4023:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3160, - "indexExpression": { - "argumentTypes": null, - "id": 3159, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "4032:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4023:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3161, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "4041:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4023:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3163, - "nodeType": "ExpressionStatement", - "src": "4023:30:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3166, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4085:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4077:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4077:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3168, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "4089:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3169, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "4096:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3164, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4068:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4068:41:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3171, - "nodeType": "EmitStatement", - "src": "4063:46:25" - } - ] - }, - "documentation": null, - "id": 3173, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3142, - "nodeType": "ParameterList", - "parameters": [], - "src": "3927:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3143, - "nodeType": "ParameterList", - "parameters": [], - "src": "3937:0:25" - }, - "scope": 3415, - "src": "3916:200:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3187, - "nodeType": "Block", - "src": "4353:62:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3180, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "4387:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3184, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4404:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4396:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4396:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4387:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3178, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "4370:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "4370:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4370:38:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3177, - "id": 3186, - "nodeType": "Return", - "src": "4363:45:25" - } - ] - }, - "documentation": null, - "id": 3188, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3174, - "nodeType": "ParameterList", - "parameters": [], - "src": "4323:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3177, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3176, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3188, - "src": "4347:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3175, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4347:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4346:6:25" - }, - "scope": 3415, - "src": "4303:112:25", - "stateMutability": "view", - "superFunction": 2977, - "visibility": "public" - }, - { - "body": { - "id": 3199, - "nodeType": "Block", - "src": "4710:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3195, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "4727:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3197, - "indexExpression": { - "argumentTypes": null, - "id": 3196, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3190, - "src": "4736:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4727:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3194, - "id": 3198, - "nodeType": "Return", - "src": "4720:27:25" - } - ] - }, - "documentation": null, - "id": 3200, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3191, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3190, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3200, - "src": "4655:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3189, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4655:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4654:20:25" - }, - "payable": false, - "returnParameters": { - "id": 3194, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3193, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3200, - "src": "4696:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3192, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4696:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4695:14:25" - }, - "scope": 3415, - "src": "4636:118:25", - "stateMutability": "view", - "superFunction": 2984, - "visibility": "public" - }, - { - "body": { - "id": 3242, - "nodeType": "Block", - "src": "5170:189:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3209, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5180:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3212, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3210, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5189:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5189:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5180:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3218, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "5228:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3213, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5203:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3216, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3214, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5212:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5212:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5203:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "5203:24:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5203:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5180:55:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3221, - "nodeType": "ExpressionStatement", - "src": "5180:55:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3222, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5245:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3224, - "indexExpression": { - "argumentTypes": null, - "id": 3223, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3202, - "src": "5254:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5245:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3229, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "5277:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3225, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5260:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3227, - "indexExpression": { - "argumentTypes": null, - "id": 3226, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3202, - "src": "5269:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5260:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2899, - "src": "5260:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5260:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5245:39:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3232, - "nodeType": "ExpressionStatement", - "src": "5245:39:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5308:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5308:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3236, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3202, - "src": "5320:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3237, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "5324:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3233, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "5299:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5299:32:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3239, - "nodeType": "EmitStatement", - "src": "5294:37:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5348:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3208, - "id": 3241, - "nodeType": "Return", - "src": "5341:11:25" - } - ] - }, - "documentation": null, - "id": 3243, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3205, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3202, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "5115:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3201, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5115:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3204, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "5127:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3203, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5127:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5114:25:25" - }, - "payable": false, - "returnParameters": { - "id": 3208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3207, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "5156:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3206, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5156:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5155:14:25" - }, - "scope": 3415, - "src": "5097:262:25", - "stateMutability": "nonpayable", - "superFunction": 3002, - "visibility": "public" - }, - { - "body": { - "id": 3270, - "nodeType": "Block", - "src": "5942:127:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3252, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "5952:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3256, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3253, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5960:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5960:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5952:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3257, - "indexExpression": { - "argumentTypes": null, - "id": 3255, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3245, - "src": "5972:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5952:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3258, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "5983:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5952:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3260, - "nodeType": "ExpressionStatement", - "src": "5952:37:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3262, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6013:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6013:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3264, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3245, - "src": "6025:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3265, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "6034:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3261, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "6004:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6004:37:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3267, - "nodeType": "EmitStatement", - "src": "5999:42:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3268, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6058:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3251, - "id": 3269, - "nodeType": "Return", - "src": "6051:11:25" - } - ] - }, - "documentation": null, - "id": 3271, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3245, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3271, - "src": "5882:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5882:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3247, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3271, - "src": "5899:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3246, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5899:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5881:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3251, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3250, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3271, - "src": "5928:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3249, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5928:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5927:14:25" - }, - "scope": 3415, - "src": "5865:204:25", - "stateMutability": "nonpayable", - "superFunction": 3011, - "visibility": "public" - }, - { - "body": { - "id": 3329, - "nodeType": "Block", - "src": "6692:246:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3282, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6702:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3284, - "indexExpression": { - "argumentTypes": null, - "id": 3283, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6711:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6702:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3289, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6738:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3285, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6719:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3287, - "indexExpression": { - "argumentTypes": null, - "id": 3286, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6728:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6719:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "6719:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6719:26:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6702:43:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3292, - "nodeType": "ExpressionStatement", - "src": "6702:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3293, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6755:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3297, - "indexExpression": { - "argumentTypes": null, - "id": 3294, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6763:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6755:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3298, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3295, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6769:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6769:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6755:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3306, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6813:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3299, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6783:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3301, - "indexExpression": { - "argumentTypes": null, - "id": 3300, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6791:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6783:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3304, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3302, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6797:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6797:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6783:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "6783:29:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6783:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6755:65:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3309, - "nodeType": "ExpressionStatement", - "src": "6755:65:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3310, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6830:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3312, - "indexExpression": { - "argumentTypes": null, - "id": 3311, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6839:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6830:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3317, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6862:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3313, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6845:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3315, - "indexExpression": { - "argumentTypes": null, - "id": 3314, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6854:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6845:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2899, - "src": "6845:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6845:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6830:39:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3320, - "nodeType": "ExpressionStatement", - "src": "6830:39:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3322, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6893:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3323, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6899:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3324, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6903:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3321, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "6884:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6884:26:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3326, - "nodeType": "EmitStatement", - "src": "6879:31:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6927:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3281, - "id": 3328, - "nodeType": "Return", - "src": "6920:11:25" - } - ] - }, - "documentation": null, - "id": 3330, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3273, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6623:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3272, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6623:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3275, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6637:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3274, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6637:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3277, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6649:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3276, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6649:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6622:39:25" - }, - "payable": false, - "returnParameters": { - "id": 3281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3280, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6678:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3279, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6678:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6677:14:25" - }, - "scope": 3415, - "src": "6601:337:25", - "stateMutability": "nonpayable", - "superFunction": 3022, - "visibility": "public" - }, - { - "body": { - "id": 3345, - "nodeType": "Block", - "src": "7312:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3339, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7329:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3341, - "indexExpression": { - "argumentTypes": null, - "id": 3340, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3332, - "src": "7337:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7329:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3343, - "indexExpression": { - "argumentTypes": null, - "id": 3342, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "7349:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7329:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3338, - "id": 3344, - "nodeType": "Return", - "src": "7322:35:25" - } - ] - }, - "documentation": null, - "id": 3346, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3332, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "7238:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3331, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7238:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3334, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "7258:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7258:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7237:37:25" - }, - "payable": false, - "returnParameters": { - "id": 3338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3337, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "7296:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7296:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7295:16:25" - }, - "scope": 3415, - "src": "7219:145:25", - "stateMutability": "view", - "superFunction": 2993, - "visibility": "public" - }, - { - "body": { - "id": 3386, - "nodeType": "Block", - "src": "7820:216:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3357, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7830:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3361, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3358, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7838:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7838:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7830:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3362, - "indexExpression": { - "argumentTypes": null, - "id": 3360, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3348, - "src": "7850:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7830:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3363, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "7861:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7830:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3365, - "nodeType": "ExpressionStatement", - "src": "7830:37:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3367, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7891:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7891:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3369, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3348, - "src": "7903:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3370, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "7912:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3366, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "7882:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7882:37:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3372, - "nodeType": "EmitStatement", - "src": "7877:42:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3377, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7977:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7977:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3379, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "7989:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3380, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4564, - "src": "7997:4:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EmptyToken_$3415", - "typeString": "contract EmptyToken" - } - }, - { - "argumentTypes": null, - "id": 3381, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3352, - "src": "8003:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_EmptyToken_$3415", - "typeString": "contract EmptyToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3374, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3348, - "src": "7952:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3373, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3051, - "src": "7929:22:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3051_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7929:31:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3051", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3050, - "src": "7929:47:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7929:79:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3383, - "nodeType": "ExpressionStatement", - "src": "7929:79:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8025:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3356, - "id": 3385, - "nodeType": "Return", - "src": "8018:11:25" - } - ] - }, - "documentation": null, - "id": 3387, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3348, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7748:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3347, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7748:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3350, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7765:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3349, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7765:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3352, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7778:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3351, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7778:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7747:42:25" - }, - "payable": false, - "returnParameters": { - "id": 3356, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3355, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7806:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3354, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7806:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7805:14:25" - }, - "scope": 3415, - "src": "7724:312:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3393, - "nodeType": "Block", - "src": "8254:25:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3390, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8264:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8264:8:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3392, - "nodeType": "ExpressionStatement", - "src": "8264:8:25" - } - ] - }, - "documentation": null, - "id": 3394, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3388, - "nodeType": "ParameterList", - "parameters": [], - "src": "8236:2:25" - }, - "payable": true, - "returnParameters": { - "id": 3389, - "nodeType": "ParameterList", - "parameters": [], - "src": "8254:0:25" - }, - "scope": 3415, - "src": "8227:52:25", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3413, - "nodeType": "Block", - "src": "8617:76:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3409, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "8672:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3410, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "8679:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3406, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "8649:12:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3405, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3039, - "src": "8634:14:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3039_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8634:28:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3039", - "typeString": "contract ERC20Interface" - } - }, - "id": 3408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3002, - "src": "8634:37:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8634:52:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3404, - "id": 3412, - "nodeType": "Return", - "src": "8627:59:25" - } - ] - }, - "documentation": null, - "id": 3414, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3401, - "modifierName": { - "argumentTypes": null, - "id": 3400, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "8584:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8584:9:25" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3396, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "8542:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3395, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8542:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3398, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "8564:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3397, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8564:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8541:35:25" - }, - "payable": false, - "returnParameters": { - "id": 3404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3403, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "8603:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3402, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8603:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8602:14:25" - }, - "scope": 3415, - "src": "8511:182:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3416, - "src": "3506:5189:25" - } - ], - "src": "0:8695:25" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/EmptyToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3051 - ], - "ERC20Interface": [ - 3039 - ], - "EmptyToken": [ - 3415 - ], - "Owned": [ - 3120 - ], - "SafeMath": [ - 2972 - ] - }, - "id": 3416, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2877, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2972, - "linearizedBaseContracts": [ - 2972 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2898, - "nodeType": "Block", - "src": "719:51:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2886, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2884, - "src": "729:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2887, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "733:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2888, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2881, - "src": "737:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2891, - "nodeType": "ExpressionStatement", - "src": "729:9:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2893, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2884, - "src": "756:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2894, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "761:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2892, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2897, - "nodeType": "ExpressionStatement", - "src": "748:15:25" - } - ] - }, - "documentation": null, - "id": 2899, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2882, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2879, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "672:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2878, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2881, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "680:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2880, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2884, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "711:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2883, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:25" - }, - "scope": 2972, - "src": "659:111:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2920, - "nodeType": "Block", - "src": "835:51:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2909, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2903, - "src": "853:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2910, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "858:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2908, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2913, - "nodeType": "ExpressionStatement", - "src": "845:15:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2914, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2906, - "src": "870:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2915, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "874:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2916, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2903, - "src": "878:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2919, - "nodeType": "ExpressionStatement", - "src": "870:9:25" - } - ] - }, - "documentation": null, - "id": 2921, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2904, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2901, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2921, - "src": "788:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2900, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2903, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2921, - "src": "796:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2902, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2907, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2906, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2921, - "src": "827:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2905, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:25" - }, - "scope": 2972, - "src": "775:111:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2948, - "nodeType": "Block", - "src": "951:65:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2930, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2928, - "src": "961:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2931, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "965:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 2932, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "969:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2935, - "nodeType": "ExpressionStatement", - "src": "961:9:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2937, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "988:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2938, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2940, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2928, - "src": "998:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2941, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "1002:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2943, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "1007:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2936, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2947, - "nodeType": "ExpressionStatement", - "src": "980:29:25" - } - ] - }, - "documentation": null, - "id": 2949, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2926, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2923, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2949, - "src": "904:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2922, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2925, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2949, - "src": "912:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2924, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2929, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2928, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2949, - "src": "943:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2927, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:25" - }, - "scope": 2972, - "src": "891:125:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2970, - "nodeType": "Block", - "src": "1081:50:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2959, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2953, - "src": "1099:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2958, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2963, - "nodeType": "ExpressionStatement", - "src": "1091:14:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 2968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2964, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "1115:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2965, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2951, - "src": "1119:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2966, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2953, - "src": "1123:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2969, - "nodeType": "ExpressionStatement", - "src": "1115:9:25" - } - ] - }, - "documentation": null, - "id": 2971, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2954, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2951, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2971, - "src": "1034:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2950, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2953, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2971, - "src": "1042:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2952, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:25" - }, - "payable": false, - "returnParameters": { - "id": 2957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2956, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2971, - "src": "1073:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2955, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:25" - }, - "scope": 2972, - "src": "1021:110:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3416, - "src": "636:497:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3039, - "linearizedBaseContracts": [ - 3039 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 2977, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2973, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:25" - }, - "payable": false, - "returnParameters": { - "id": 2976, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2975, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2977, - "src": "1473:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2974, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:25" - }, - "scope": 3039, - "src": "1425:54:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 2984, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2980, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2979, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 2984, - "src": "1503:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:25" - }, - "payable": false, - "returnParameters": { - "id": 2983, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2982, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 2984, - "src": "1548:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2981, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:25" - }, - "scope": 3039, - "src": "1484:78:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 2993, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2989, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2986, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "1586:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2985, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2988, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "1606:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2987, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:25" - }, - "payable": false, - "returnParameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2991, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 2993, - "src": "1648:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2990, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:25" - }, - "scope": 3039, - "src": "1567:97:25", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3002, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2995, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3002, - "src": "1687:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2994, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2997, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3002, - "src": "1699:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2996, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:25" - }, - "payable": false, - "returnParameters": { - "id": 3001, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3000, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3002, - "src": "1728:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2999, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:25" - }, - "scope": 3039, - "src": "1669:73:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3011, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3007, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3004, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "1764:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3003, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3006, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "1781:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3005, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3010, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3009, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "1810:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3008, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:25" - }, - "scope": 3039, - "src": "1747:77:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3022, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3018, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3013, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1851:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3012, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3015, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1865:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3014, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3017, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1877:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3016, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:25" - }, - "payable": false, - "returnParameters": { - "id": 3021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3020, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "1906:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3019, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:25" - }, - "scope": 3039, - "src": "1829:91:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3030, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3029, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3024, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "1941:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3026, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "1963:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3028, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "1983:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3027, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:25" - }, - "src": "1926:70:25" - }, - { - "anonymous": false, - "documentation": null, - "id": 3038, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3032, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3038, - "src": "2016:26:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3031, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3034, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3038, - "src": "2044:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3033, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3036, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3038, - "src": "2069:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3035, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:25" - }, - "src": "2001:81:25" - } - ], - "scope": 3416, - "src": "1395:689:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3051, - "linearizedBaseContracts": [ - 3051 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3050, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3048, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3041, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2416:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3040, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3043, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2430:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3042, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3045, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2446:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3047, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3050, - "src": "2461:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:25" - }, - "payable": false, - "returnParameters": { - "id": 3049, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:25" - }, - "scope": 3051, - "src": "2391:89:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3416, - "src": "2353:129:25" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3120, - "linearizedBaseContracts": [ - 3120 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3053, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3120, - "src": "2684:20:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3055, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3120, - "src": "2710:23:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3061, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3060, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3057, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3061, - "src": "2767:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3056, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3059, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3061, - "src": "2790:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:25" - }, - "src": "2740:71:25" - }, - { - "body": { - "id": 3069, - "nodeType": "Block", - "src": "2838:35:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3064, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "2848:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3065, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3068, - "nodeType": "ExpressionStatement", - "src": "2848:18:25" - } - ] - }, - "documentation": null, - "id": 3070, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3062, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3063, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:25" - }, - "scope": 3120, - "src": "2817:56:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3080, - "nodeType": "Block", - "src": "2898:56:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3075, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "2930:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3072, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3078, - "nodeType": "ExpressionStatement", - "src": "2908:28:25" - }, - { - "id": 3079, - "nodeType": "PlaceholderStatement", - "src": "2946:1:25" - } - ] - }, - "documentation": null, - "id": 3081, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3071, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:25" - }, - "src": "2879:75:25", - "visibility": "internal" - }, - { - "body": { - "id": 3092, - "nodeType": "Block", - "src": "3023:37:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3088, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3033:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3089, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "3044:9:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3091, - "nodeType": "ExpressionStatement", - "src": "3033:20:25" - } - ] - }, - "documentation": null, - "id": 3093, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3086, - "modifierName": { - "argumentTypes": null, - "id": 3085, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "3013:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:25" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3083, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3093, - "src": "2987:17:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3082, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:25" - }, - "payable": false, - "returnParameters": { - "id": 3087, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:25" - }, - "scope": 3120, - "src": "2960:100:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3118, - "nodeType": "Block", - "src": "3099:157:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3097, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3099, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3131:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3096, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3102, - "nodeType": "ExpressionStatement", - "src": "3109:31:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3104, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "3176:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3105, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3183:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3103, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "3155:20:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3107, - "nodeType": "EmitStatement", - "src": "3150:42:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3108, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "3202:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3109, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3210:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "3202:16:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3112, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3055, - "src": "3228:8:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3117, - "nodeType": "ExpressionStatement", - "src": "3228:21:25" - } - ] - }, - "documentation": null, - "id": 3119, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3094, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3095, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:25" - }, - "scope": 3120, - "src": "3065:191:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3416, - "src": "2663:595:25" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3121, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3039, - "src": "3529:14:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3039", - "typeString": "contract ERC20Interface" - } - }, - "id": 3122, - "nodeType": "InheritanceSpecifier", - "src": "3529:14:25" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3123, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3120, - "src": "3545:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3120", - "typeString": "contract Owned" - } - }, - "id": 3124, - "nodeType": "InheritanceSpecifier", - "src": "3545:5:25" - } - ], - "contractDependencies": [ - 3039, - 3120 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3415, - "linearizedBaseContracts": [ - 3415, - 3120, - 3039 - ], - "name": "EmptyToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3127, - "libraryName": { - "contractScope": null, - "id": 3125, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2972, - "src": "3563:8:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2972", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3557:24:25", - "typeName": { - "id": 3126, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3576:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3129, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3587:21:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3128, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3587:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3131, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3614:17:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3130, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3614:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3135, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3638:33:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3134, - "keyType": { - "id": 3132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3646:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3638:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3133, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3657:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3141, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3415, - "src": "3677:52:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3140, - "keyType": { - "id": 3136, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3685:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3677:44:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3139, - "keyType": { - "id": 3137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3704:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3696:24:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3138, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3715:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3172, - "nodeType": "Block", - "src": "3937:179:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3144, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3129, - "src": "3947:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3958:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "3947:13:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3147, - "nodeType": "ExpressionStatement", - "src": "3947:13:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3148, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "3970:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3985:7:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3995:2:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3152, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3129, - "src": "4004:8:25", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3999:4:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3999:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3995:18:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3985:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3970:43:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3157, - "nodeType": "ExpressionStatement", - "src": "3970:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3158, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "4023:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3160, - "indexExpression": { - "argumentTypes": null, - "id": 3159, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "4032:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4023:15:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3161, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "4041:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4023:30:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3163, - "nodeType": "ExpressionStatement", - "src": "4023:30:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3166, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4085:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4077:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4077:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3168, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "4089:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3169, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "4096:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3164, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "4068:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4068:41:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3171, - "nodeType": "EmitStatement", - "src": "4063:46:25" - } - ] - }, - "documentation": null, - "id": 3173, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3142, - "nodeType": "ParameterList", - "parameters": [], - "src": "3927:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3143, - "nodeType": "ParameterList", - "parameters": [], - "src": "3937:0:25" - }, - "scope": 3415, - "src": "3916:200:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3187, - "nodeType": "Block", - "src": "4353:62:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3180, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "4387:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3184, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4404:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4396:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4396:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4387:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3178, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3131, - "src": "4370:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "4370:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4370:38:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3177, - "id": 3186, - "nodeType": "Return", - "src": "4363:45:25" - } - ] - }, - "documentation": null, - "id": 3188, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3174, - "nodeType": "ParameterList", - "parameters": [], - "src": "4323:2:25" - }, - "payable": false, - "returnParameters": { - "id": 3177, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3176, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3188, - "src": "4347:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3175, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4347:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4346:6:25" - }, - "scope": 3415, - "src": "4303:112:25", - "stateMutability": "view", - "superFunction": 2977, - "visibility": "public" - }, - { - "body": { - "id": 3199, - "nodeType": "Block", - "src": "4710:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3195, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "4727:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3197, - "indexExpression": { - "argumentTypes": null, - "id": 3196, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3190, - "src": "4736:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4727:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3194, - "id": 3198, - "nodeType": "Return", - "src": "4720:27:25" - } - ] - }, - "documentation": null, - "id": 3200, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3191, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3190, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3200, - "src": "4655:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3189, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4655:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4654:20:25" - }, - "payable": false, - "returnParameters": { - "id": 3194, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3193, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3200, - "src": "4696:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3192, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4696:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4695:14:25" - }, - "scope": 3415, - "src": "4636:118:25", - "stateMutability": "view", - "superFunction": 2984, - "visibility": "public" - }, - { - "body": { - "id": 3242, - "nodeType": "Block", - "src": "5170:189:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3209, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5180:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3212, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3210, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5189:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5189:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5180:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3218, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "5228:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3213, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5203:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3216, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3214, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5212:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5212:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5203:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "5203:24:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5203:32:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5180:55:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3221, - "nodeType": "ExpressionStatement", - "src": "5180:55:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3222, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5245:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3224, - "indexExpression": { - "argumentTypes": null, - "id": 3223, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3202, - "src": "5254:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5245:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3229, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "5277:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3225, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "5260:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3227, - "indexExpression": { - "argumentTypes": null, - "id": 3226, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3202, - "src": "5269:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5260:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2899, - "src": "5260:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5260:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5245:39:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3232, - "nodeType": "ExpressionStatement", - "src": "5245:39:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5308:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5308:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3236, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3202, - "src": "5320:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3237, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3204, - "src": "5324:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3233, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "5299:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5299:32:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3239, - "nodeType": "EmitStatement", - "src": "5294:37:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5348:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3208, - "id": 3241, - "nodeType": "Return", - "src": "5341:11:25" - } - ] - }, - "documentation": null, - "id": 3243, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3205, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3202, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "5115:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3201, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5115:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3204, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "5127:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3203, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5127:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5114:25:25" - }, - "payable": false, - "returnParameters": { - "id": 3208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3207, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "5156:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3206, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5156:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5155:14:25" - }, - "scope": 3415, - "src": "5097:262:25", - "stateMutability": "nonpayable", - "superFunction": 3002, - "visibility": "public" - }, - { - "body": { - "id": 3270, - "nodeType": "Block", - "src": "5942:127:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3252, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "5952:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3256, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3253, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5960:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5960:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5952:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3257, - "indexExpression": { - "argumentTypes": null, - "id": 3255, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3245, - "src": "5972:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5952:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3258, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "5983:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5952:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3260, - "nodeType": "ExpressionStatement", - "src": "5952:37:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3262, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6013:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6013:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3264, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3245, - "src": "6025:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3265, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "6034:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3261, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "6004:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6004:37:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3267, - "nodeType": "EmitStatement", - "src": "5999:42:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3268, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6058:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3251, - "id": 3269, - "nodeType": "Return", - "src": "6051:11:25" - } - ] - }, - "documentation": null, - "id": 3271, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3245, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3271, - "src": "5882:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5882:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3247, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3271, - "src": "5899:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3246, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5899:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5881:30:25" - }, - "payable": false, - "returnParameters": { - "id": 3251, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3250, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3271, - "src": "5928:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3249, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5928:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5927:14:25" - }, - "scope": 3415, - "src": "5865:204:25", - "stateMutability": "nonpayable", - "superFunction": 3011, - "visibility": "public" - }, - { - "body": { - "id": 3329, - "nodeType": "Block", - "src": "6692:246:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3282, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6702:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3284, - "indexExpression": { - "argumentTypes": null, - "id": 3283, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6711:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6702:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3289, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6738:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3285, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6719:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3287, - "indexExpression": { - "argumentTypes": null, - "id": 3286, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6728:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6719:14:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "6719:18:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6719:26:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6702:43:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3292, - "nodeType": "ExpressionStatement", - "src": "6702:43:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3293, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6755:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3297, - "indexExpression": { - "argumentTypes": null, - "id": 3294, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6763:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6755:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3298, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3295, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6769:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6769:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6755:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3306, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6813:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3299, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "6783:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3301, - "indexExpression": { - "argumentTypes": null, - "id": 3300, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6791:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6783:13:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3304, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3302, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6797:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6797:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6783:25:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2921, - "src": "6783:29:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6783:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6755:65:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3309, - "nodeType": "ExpressionStatement", - "src": "6755:65:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 3319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3310, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6830:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3312, - "indexExpression": { - "argumentTypes": null, - "id": 3311, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6839:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6830:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3317, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6862:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3313, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "6845:8:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3315, - "indexExpression": { - "argumentTypes": null, - "id": 3314, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6854:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6845:12:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2899, - "src": "6845:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6845:24:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6830:39:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3320, - "nodeType": "ExpressionStatement", - "src": "6830:39:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3322, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "6893:4:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3323, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "6899:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3324, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "6903:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3321, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3030, - "src": "6884:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6884:26:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3326, - "nodeType": "EmitStatement", - "src": "6879:31:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6927:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3281, - "id": 3328, - "nodeType": "Return", - "src": "6920:11:25" - } - ] - }, - "documentation": null, - "id": 3330, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3273, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6623:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3272, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6623:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3275, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6637:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3274, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6637:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3277, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6649:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3276, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6649:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6622:39:25" - }, - "payable": false, - "returnParameters": { - "id": 3281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3280, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3330, - "src": "6678:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3279, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6678:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6677:14:25" - }, - "scope": 3415, - "src": "6601:337:25", - "stateMutability": "nonpayable", - "superFunction": 3022, - "visibility": "public" - }, - { - "body": { - "id": 3345, - "nodeType": "Block", - "src": "7312:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3339, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7329:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3341, - "indexExpression": { - "argumentTypes": null, - "id": 3340, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3332, - "src": "7337:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7329:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3343, - "indexExpression": { - "argumentTypes": null, - "id": 3342, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "7349:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7329:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3338, - "id": 3344, - "nodeType": "Return", - "src": "7322:35:25" - } - ] - }, - "documentation": null, - "id": 3346, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3332, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "7238:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3331, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7238:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3334, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "7258:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7258:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7237:37:25" - }, - "payable": false, - "returnParameters": { - "id": 3338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3337, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "7296:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3336, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7296:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7295:16:25" - }, - "scope": 3415, - "src": "7219:145:25", - "stateMutability": "view", - "superFunction": 2993, - "visibility": "public" - }, - { - "body": { - "id": 3386, - "nodeType": "Block", - "src": "7820:216:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3357, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "7830:7:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3361, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3358, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7838:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7838:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7830:19:25", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3362, - "indexExpression": { - "argumentTypes": null, - "id": 3360, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3348, - "src": "7850:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7830:28:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3363, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "7861:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7830:37:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3365, - "nodeType": "ExpressionStatement", - "src": "7830:37:25" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3367, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7891:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7891:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3369, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3348, - "src": "7903:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3370, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "7912:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3366, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "7882:8:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7882:37:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3372, - "nodeType": "EmitStatement", - "src": "7877:42:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3377, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7977:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7977:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3379, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3350, - "src": "7989:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3380, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4564, - "src": "7997:4:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EmptyToken_$3415", - "typeString": "contract EmptyToken" - } - }, - { - "argumentTypes": null, - "id": 3381, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3352, - "src": "8003:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_EmptyToken_$3415", - "typeString": "contract EmptyToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3374, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3348, - "src": "7952:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3373, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3051, - "src": "7929:22:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3051_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7929:31:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3051", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3050, - "src": "7929:47:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7929:79:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3383, - "nodeType": "ExpressionStatement", - "src": "7929:79:25" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8025:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3356, - "id": 3385, - "nodeType": "Return", - "src": "8018:11:25" - } - ] - }, - "documentation": null, - "id": 3387, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3348, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7748:15:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3347, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7748:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3350, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7765:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3349, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7765:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3352, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7778:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3351, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7778:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7747:42:25" - }, - "payable": false, - "returnParameters": { - "id": 3356, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3355, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3387, - "src": "7806:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3354, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7806:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7805:14:25" - }, - "scope": 3415, - "src": "7724:312:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3393, - "nodeType": "Block", - "src": "8254:25:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3390, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8264:6:25", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8264:8:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3392, - "nodeType": "ExpressionStatement", - "src": "8264:8:25" - } - ] - }, - "documentation": null, - "id": 3394, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3388, - "nodeType": "ParameterList", - "parameters": [], - "src": "8236:2:25" - }, - "payable": true, - "returnParameters": { - "id": 3389, - "nodeType": "ParameterList", - "parameters": [], - "src": "8254:0:25" - }, - "scope": 3415, - "src": "8227:52:25", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3413, - "nodeType": "Block", - "src": "8617:76:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3409, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "8672:5:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3410, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "8679:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3406, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "8649:12:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3405, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3039, - "src": "8634:14:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3039_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8634:28:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3039", - "typeString": "contract ERC20Interface" - } - }, - "id": 3408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3002, - "src": "8634:37:25", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8634:52:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3404, - "id": 3412, - "nodeType": "Return", - "src": "8627:59:25" - } - ] - }, - "documentation": null, - "id": 3414, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3401, - "modifierName": { - "argumentTypes": null, - "id": 3400, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "8584:9:25", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8584:9:25" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3396, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "8542:20:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3395, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8542:7:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3398, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "8564:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3397, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8564:4:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8541:35:25" - }, - "payable": false, - "returnParameters": { - "id": 3404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3403, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "8603:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3402, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8603:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8602:14:25" - }, - "scope": 3415, - "src": "8511:182:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3416, - "src": "3506:5189:25" - } - ], - "src": "0:8695:25" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x4860c376b078ad79c54452991dfa21d46791b0e5", - "transactionHash": "0x2a507536ff667f76bc9ec99f677eb4d7ba75abc00377f0ce6d849a31c29b2c2f" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-09-26T08:56:03.737Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/Owned.json b/safe-contracts/build/contracts/test/Owned.json deleted file mode 100644 index cf5dab3b..00000000 --- a/safe-contracts/build/contracts/test/Owned.json +++ /dev/null @@ -1,14264 +0,0 @@ -{ - "contractName": "Owned", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610424806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806379ba5097146100675780638da5cb5b1461007e578063d4ee1d90146100d5578063f2fde38b1461012c575b600080fd5b34801561007357600080fd5b5061007c61016f565b005b34801561008a57600080fd5b5061009361030e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610333565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b5061016d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101cb57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b457600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582057ddc5cc13a1eca45f4149a4f2748fc00bc0fc8b38da47cbd54fabc1f1a3286f0029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806379ba5097146100675780638da5cb5b1461007e578063d4ee1d90146100d5578063f2fde38b1461012c575b600080fd5b34801561007357600080fd5b5061007c61016f565b005b34801561008a57600080fd5b5061009361030e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610333565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b5061016d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610359565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101cb57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b457600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582057ddc5cc13a1eca45f4149a4f2748fc00bc0fc8b38da47cbd54fabc1f1a3286f0029", - "sourceMap": "2663:595:26:-;;;2817:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;2817:56:26;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;2663:595;;;;;;", - "deployedSourceMap": "2663:595:26:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:26;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:26;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;3131:8;;;;;;;;;;;3117:22;;:10;:22;;;3109:31;;;;;;;;3183:8;;;;;;;;;;;3155:37;;3176:5;;;;;;;;;;;3155:37;;;;;;;;;;;;3210:8;;;;;;;;;;;3202:5;;:16;;;;;;;;;;;;;;;;;;3247:1;3228:8;;:21;;;;;;;;;;;;;;;;;;3065:191::o;2684:20::-;;;;;;;;;;;;;:::o;2710:23::-;;;;;;;;;;;;;:::o;2960:100::-;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;3044:9;3033:8;;:20;;;;;;;;;;;;;;;;;;2960:100;:::o", - "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract TestToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-09-26T08:32:07.660Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/SafeMath.json b/safe-contracts/build/contracts/test/SafeMath.json deleted file mode 100644 index 9615bc52..00000000 --- a/safe-contracts/build/contracts/test/SafeMath.json +++ /dev/null @@ -1,14189 +0,0 @@ -{ - "contractName": "SafeMath", - "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058207b85988d9fca11f15e3ba4c2a2e5ad1c0debc1a24f938c9db30c754a373620960029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058207b85988d9fca11f15e3ba4c2a2e5ad1c0debc1a24f938c9db30c754a373620960029", - "sourceMap": "636:497:26:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "636:497:26:-;;;;;;;;", - "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract TestToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-09-26T08:32:07.665Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/test/TestToken.json b/safe-contracts/build/contracts/test/TestToken.json deleted file mode 100644 index dd5c9dbf..00000000 --- a/safe-contracts/build/contracts/test/TestToken.json +++ /dev/null @@ -1,14541 +0,0 @@ -{ - "contractName": "TestToken", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newOwner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "name": "_to", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "tokens", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "tokenOwner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "tokens", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenOwner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenOwner", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "remaining", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "approveAndCall", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "tokenAddress", - "type": "address" - }, - { - "name": "tokens", - "type": "uint256" - } - ], - "name": "transferAnyERC20Token", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600381526020017f544b4e0000000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000221565b506040805190810160405280600d81526020017f546f6b656e204578616d706c650000000000000000000000000000000000000081525060039080519060200190620000ed92919062000221565b506012600460006101000a81548160ff021916908360ff160217905550600460009054906101000a900460ff1660ff16600a0a620f424002600581905550600554600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a3620002d0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026457805160ff191683800117855562000295565b8280016001018555821562000295579182015b828111156200029457825182559160200191906001019062000277565b5b509050620002a49190620002a8565b5090565b620002cd91905b80821115620002c9576000816000905550600101620002af565b5090565b90565b6114e380620002e06000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce5671461028557806370a08231146102b657806379ba50971461030d5780638da5cb5b1461032457806395d89b411461037b578063a9059cbb1461040b578063cae9ca5114610470578063d4ee1d901461051b578063dc39d06d14610572578063dd62ed3e146105d7578063f2fde38b1461064e575b600080fd5b3480156100ec57600080fd5b506100f5610691565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072f565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea610821565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087c565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610b27565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102f7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b3a565b6040518082815260200191505060405180910390f35b34801561031957600080fd5b50610322610b83565b005b34801561033057600080fd5b50610339610d22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038757600080fd5b50610390610d47565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103d05780820151818401526020810190506103b5565b50505050905090810190601f1680156103fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041757600080fd5b50610456600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de5565b604051808215151515815260200191505060405180910390f35b34801561047c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f80565b604051808215151515815260200191505060405180910390f35b34801561052757600080fd5b506105306111cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057e57600080fd5b506105bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111f5565b604051808215151515815260200191505060405180910390f35b3480156105e357600080fd5b50610638600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611359565b6040518082815260200191505060405180910390f35b34801561065a57600080fd5b5061068f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e0565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107275780601f106106fc57610100808354040283529160200191610727565b820191906000526020600020905b81548152906001019060200180831161070a57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610877600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461147f90919063ffffffff16565b905090565b60006108d082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a282600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bdf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ddd5780601f10610db257610100808354040283529160200191610ddd565b820191906000526020600020905b815481529060010190602001808311610dc057829003601f168201915b505050505081565b6000610e3982600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ece82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561115d578082015181840152602081019050611142565b50505050905090810190601f16801561118a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b505050506040513d602081101561134057600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561149057600080fd5b818303905092915050565b600081830190508281101515156114b157600080fd5b929150505600a165627a7a72305820e93a82d67ce3df799c1bfea59d7f6b269216cff0ed6e6c3d0c4b551065d3f5aa0029", - "deployedBytecode": "0x6080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100e0578063095ea7b31461017057806318160ddd146101d557806323b872dd14610200578063313ce5671461028557806370a08231146102b657806379ba50971461030d5780638da5cb5b1461032457806395d89b411461037b578063a9059cbb1461040b578063cae9ca5114610470578063d4ee1d901461051b578063dc39d06d14610572578063dd62ed3e146105d7578063f2fde38b1461064e575b600080fd5b3480156100ec57600080fd5b506100f5610691565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013557808201518184015260208101905061011a565b50505050905090810190601f1680156101625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017c57600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072f565b604051808215151515815260200191505060405180910390f35b3480156101e157600080fd5b506101ea610821565b6040518082815260200191505060405180910390f35b34801561020c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087c565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610b27565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102c257600080fd5b506102f7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b3a565b6040518082815260200191505060405180910390f35b34801561031957600080fd5b50610322610b83565b005b34801561033057600080fd5b50610339610d22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038757600080fd5b50610390610d47565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103d05780820151818401526020810190506103b5565b50505050905090810190601f1680156103fd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041757600080fd5b50610456600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de5565b604051808215151515815260200191505060405180910390f35b34801561047c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f80565b604051808215151515815260200191505060405180910390f35b34801561052757600080fd5b506105306111cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057e57600080fd5b506105bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111f5565b604051808215151515815260200191505060405180910390f35b3480156105e357600080fd5b50610638600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611359565b6040518082815260200191505060405180910390f35b34801561065a57600080fd5b5061068f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113e0565b005b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107275780601f106106fc57610100808354040283529160200191610727565b820191906000526020600020905b81548152906001019060200180831161070a57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610877600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461147f90919063ffffffff16565b905090565b60006108d082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109a282600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bdf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ddd5780601f10610db257610100808354040283529160200191610ddd565b820191906000526020600020905b815481529060010190602001808311610dc057829003601f168201915b505050505081565b6000610e3982600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147f90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ece82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461149b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561115d578082015181840152602081019050611142565b50505050905090810190601f16801561118a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561125257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561131657600080fd5b505af115801561132a573d6000803e3d6000fd5b505050506040513d602081101561134057600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143b57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561149057600080fd5b818303905092915050565b600081830190508281101515156114b157600080fd5b929150505600a165627a7a72305820e93a82d67ce3df799c1bfea59d7f6b269216cff0ed6e6c3d0c4b551065d3f5aa0029", - "sourceMap": "3506:5295:26:-;;;3966:256;8:9:-1;5:2;;;30:1;27;20:12;5:2;3966:256:26;2856:10;2848:5;;:18;;;;;;;;;;;;;;;;;;3997:14;;;;;;;;;;;;;;;;;;:6;:14;;;;;;;;;;;;:::i;:::-;;4021:22;;;;;;;;;;;;;;;;;;:4;:22;;;;;;;;;;;;:::i;:::-;;4064:2;4053:8;;:13;;;;;;;;;;;;;;;;;;4110:8;;;;;;;;;;;4105:14;;4101:2;:18;4091:7;:28;4076:12;:43;;;;4147:12;;4129:8;:15;4138:5;;;;;;;;;;;4129:15;;;;;;;;;;;;;;;:30;;;;4195:5;;;;;;;;;;;4174:41;;4191:1;4174:41;;;4202:12;;4174:41;;;;;;;;;;;;;;;;;;3506:5295;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "3506:5295:26:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8370:8;;;3612:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3612:19:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3612:19:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5971:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5971:204:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4409:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4409:112:26;;;;;;;;;;;;;;;;;;;;;;;6707:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6707:337:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3637:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3637:21:26;;;;;;;;;;;;;;;;;;;;;;;;;;;4742:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4742:118:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3065:191:26;;;;;;2684:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2684:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;3586;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3586:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3586:20:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5203:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5203:262:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7830:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7830:312:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:23:26;;;;;;;;;;;;;;;;;;;;;;;;;;;8617:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8617:182:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7325:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7325:145:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2960:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2960:100:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5971:204::-;6034:12;6089:6;6058:7;:19;6066:10;6058:19;;;;;;;;;;;;;;;:28;6078:7;6058:28;;;;;;;;;;;;;;;:37;;;;6131:7;6110:37;;6119:10;6110:37;;;6140:6;6110:37;;;;;;;;;;;;;;;;;;6164:4;6157:11;;5971:204;;;;:::o;4409:112::-;4453:4;4476:38;4493:8;:20;4510:1;4493:20;;;;;;;;;;;;;;;;4476:12;;:16;;:38;;;;:::i;:::-;4469:45;;4409:112;:::o;6707:337::-;6784:12;6825:26;6844:6;6825:8;:14;6834:4;6825:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;6808:8;:14;6817:4;6808:14;;;;;;;;;;;;;;;:43;;;;6889:37;6919:6;6889:7;:13;6897:4;6889:13;;;;;;;;;;;;;;;:25;6903:10;6889:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;6861:7;:13;6869:4;6861:13;;;;;;;;;;;;;;;:25;6875:10;6861:25;;;;;;;;;;;;;;;:65;;;;6951:24;6968:6;6951:8;:12;6960:2;6951:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;6936:8;:12;6945:2;6936:12;;;;;;;;;;;;;;;:39;;;;7005:2;6990:26;;6999:4;6990:26;;;7009:6;6990:26;;;;;;;;;;;;;;;;;;7033:4;7026:11;;6707:337;;;;;:::o;3637:21::-;;;;;;;;;;;;;:::o;4742:118::-;4802:12;4833:8;:20;4842:10;4833:20;;;;;;;;;;;;;;;;4826:27;;4742:118;;;:::o;3065:191::-;3131:8;;;;;;;;;;;3117:22;;:10;:22;;;3109:31;;;;;;;;3183:8;;;;;;;;;;;3155:37;;3176:5;;;;;;;;;;;3155:37;;;;;;;;;;;;3210:8;;;;;;;;;;;3202:5;;:16;;;;;;;;;;;;;;;;;;3247:1;3228:8;;:21;;;;;;;;;;;;;;;;;;3065:191::o;2684:20::-;;;;;;;;;;;;;:::o;3586:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5203:262::-;5262:12;5309:32;5334:6;5309:8;:20;5318:10;5309:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5286:8;:20;5295:10;5286:20;;;;;;;;;;;;;;;:55;;;;5366:24;5383:6;5366:8;:12;5375:2;5366:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;5351:8;:12;5360:2;5351:12;;;;;;;;;;;;;;;:39;;;;5426:2;5405:32;;5414:10;5405:32;;;5430:6;5405:32;;;;;;;;;;;;;;;;;;5454:4;5447:11;;5203:262;;;;:::o;7830:312::-;7912:12;7967:6;7936:7;:19;7944:10;7936:19;;;;;;;;;;;;;;;:28;7956:7;7936:28;;;;;;;;;;;;;;;:37;;;;8009:7;7988:37;;7997:10;7988:37;;;8018:6;7988:37;;;;;;;;;;;;;;;;;;8058:7;8035:47;;;8083:10;8095:6;8103:4;8109;8035:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8035:79:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8035:79:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8035:79:26;;;;8131:4;8124:11;;7830:312;;;;;:::o;2710:23::-;;;;;;;;;;;;;:::o;8617:182::-;8709:12;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;8755:12;8740:37;;;8778:5;;;;;;;;;;;8785:6;8740:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8740:52:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8740:52:26;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8740:52:26;;;;;;;;;;;;;;;;8733:59;;8617:182;;;;:::o;7325:145::-;7402:14;7435:7;:19;7443:10;7435:19;;;;;;;;;;;;;;;:28;7455:7;7435:28;;;;;;;;;;;;;;;;7428:35;;7325:145;;;;:::o;2960:100::-;2930:5;;;;;;;;;;;2916:19;;:10;:19;;;2908:28;;;;;;;;3044:9;3033:8;;:20;;;;;;;;;;;;;;;;;;2960:100;:::o;775:111::-;827:6;858:1;853;:6;;845:15;;;;;;;;878:1;874;:5;870:9;;775:111;;;;:::o;659:::-;711:6;737:1;733;:5;729:9;;761:1;756;:6;;748:15;;;;;;;;659:111;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\n// ----------------------------------------------------------------------------\n// 'FIXED' 'Example Fixed Supply Token' token contract\n//\n// Symbol : FIXED\n// Name : Example Fixed Supply Token\n// Total supply: 1,000,000.000000000000000000\n// Decimals : 18\n//\n// Enjoy.\n//\n// (c) BokkyPooBah / Bok Consulting Pty Ltd 2018. The MIT Licence.\n// ----------------------------------------------------------------------------\n\n\n// ----------------------------------------------------------------------------\n// Safe maths\n// ----------------------------------------------------------------------------\nlibrary SafeMath {\n function add(uint a, uint b) internal pure returns (uint c) {\n c = a + b;\n require(c >= a);\n }\n function sub(uint a, uint b) internal pure returns (uint c) {\n require(b <= a);\n c = a - b;\n }\n function mul(uint a, uint b) internal pure returns (uint c) {\n c = a * b;\n require(a == 0 || c / a == b);\n }\n function div(uint a, uint b) internal pure returns (uint c) {\n require(b > 0);\n c = a / b;\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC Token Standard #20 Interface\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n// ----------------------------------------------------------------------------\ncontract ERC20Interface {\n function totalSupply() public constant returns (uint);\n function balanceOf(address tokenOwner) public constant returns (uint balance);\n function allowance(address tokenOwner, address spender) public constant returns (uint remaining);\n function transfer(address to, uint tokens) public returns (bool success);\n function approve(address spender, uint tokens) public returns (bool success);\n function transferFrom(address from, address to, uint tokens) public returns (bool success);\n\n event Transfer(address indexed from, address indexed to, uint tokens);\n event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\n}\n\n\n// ----------------------------------------------------------------------------\n// Contract function to receive approval and execute function in one call\n//\n// Borrowed from MiniMeToken\n// ----------------------------------------------------------------------------\ncontract ApproveAndCallFallBack {\n function receiveApproval(address from, uint256 tokens, address token, bytes data) public;\n}\n\n\n// ----------------------------------------------------------------------------\n// Owned contract\n// ----------------------------------------------------------------------------\ncontract Owned {\n address public owner;\n address public newOwner;\n\n event OwnershipTransferred(address indexed _from, address indexed _to);\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner {\n require(msg.sender == owner);\n _;\n }\n\n function transferOwnership(address _newOwner) public onlyOwner {\n newOwner = _newOwner;\n }\n function acceptOwnership() public {\n require(msg.sender == newOwner);\n emit OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n newOwner = address(0);\n }\n}\n\n\n// ----------------------------------------------------------------------------\n// ERC20 Token, with the addition of symbol, name and decimals and a\n// fixed supply\n// ----------------------------------------------------------------------------\ncontract TestToken is ERC20Interface, Owned {\n using SafeMath for uint;\n\n string public symbol;\n string public name;\n uint8 public decimals;\n uint _totalSupply;\n\n mapping(address => uint) balances;\n mapping(address => mapping(address => uint)) allowed;\n\n\n // ------------------------------------------------------------------------\n // Constructor\n // ------------------------------------------------------------------------\n constructor() public {\n symbol = \"TKN\";\n name = \"Token Example\";\n decimals = 18;\n _totalSupply = 1000000 * 10**uint(decimals);\n balances[owner] = _totalSupply;\n emit Transfer(address(0), owner, _totalSupply);\n }\n\n\n // ------------------------------------------------------------------------\n // Total supply\n // ------------------------------------------------------------------------\n function totalSupply() public view returns (uint) {\n return _totalSupply.sub(balances[address(0)]);\n }\n\n\n // ------------------------------------------------------------------------\n // Get the token balance for account `tokenOwner`\n // ------------------------------------------------------------------------\n function balanceOf(address tokenOwner) public view returns (uint balance) {\n return balances[tokenOwner];\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer the balance from token owner's account to `to` account\n // - Owner's account must have sufficient balance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transfer(address to, uint tokens) public returns (bool success) {\n balances[msg.sender] = balances[msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(msg.sender, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account\n //\n // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md\n // recommends that there are no checks for the approval double-spend attack\n // as this should be implemented in user interfaces \n // ------------------------------------------------------------------------\n function approve(address spender, uint tokens) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Transfer `tokens` from the `from` account to the `to` account\n // \n // The calling account must already have sufficient tokens approve(...)-d\n // for spending from the `from` account and\n // - From account must have sufficient balance to transfer\n // - Spender must have sufficient allowance to transfer\n // - 0 value transfers are allowed\n // ------------------------------------------------------------------------\n function transferFrom(address from, address to, uint tokens) public returns (bool success) {\n balances[from] = balances[from].sub(tokens);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\n balances[to] = balances[to].add(tokens);\n emit Transfer(from, to, tokens);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Returns the amount of tokens approved by the owner that can be\n // transferred to the spender's account\n // ------------------------------------------------------------------------\n function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\n return allowed[tokenOwner][spender];\n }\n\n\n // ------------------------------------------------------------------------\n // Token owner can approve for `spender` to transferFrom(...) `tokens`\n // from the token owner's account. The `spender` contract function\n // `receiveApproval(...)` is then executed\n // ------------------------------------------------------------------------\n function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {\n allowed[msg.sender][spender] = tokens;\n emit Approval(msg.sender, spender, tokens);\n ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);\n return true;\n }\n\n\n // ------------------------------------------------------------------------\n // Don't accept ETH\n // ------------------------------------------------------------------------\n function () public payable {\n revert();\n }\n\n\n // ------------------------------------------------------------------------\n // Owner can transfer out any accidentally sent ERC20 tokens\n // ------------------------------------------------------------------------\n function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {\n return ERC20Interface(tokenAddress).transfer(owner, tokens);\n }\n}", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/test/TestToken.sol", - "exportedSymbols": { - "ApproveAndCallFallBack": [ - 3591 - ], - "ERC20Interface": [ - 3579 - ], - "Owned": [ - 3660 - ], - "SafeMath": [ - 3512 - ], - "TestToken": [ - 3967 - ] - }, - "id": 3968, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3417, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 3512, - "linearizedBaseContracts": [ - 3512 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3438, - "nodeType": "Block", - "src": "719:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3426, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "729:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3427, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "733:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3428, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "737:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "733:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "729:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3431, - "nodeType": "ExpressionStatement", - "src": "729:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3433, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "756:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3434, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "761:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "756:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3432, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "748:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "748:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3437, - "nodeType": "ExpressionStatement", - "src": "748:15:26" - } - ] - }, - "documentation": null, - "id": 3439, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3419, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "672:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3418, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "672:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3421, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "680:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3420, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "680:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3424, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3439, - "src": "711:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3423, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "710:8:26" - }, - "scope": 3512, - "src": "659:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3460, - "nodeType": "Block", - "src": "835:51:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3449, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "853:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3450, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "858:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "853:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3448, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "845:15:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3453, - "nodeType": "ExpressionStatement", - "src": "845:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "870:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3455, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "874:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3456, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3443, - "src": "878:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "874:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "870:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3459, - "nodeType": "ExpressionStatement", - "src": "870:9:26" - } - ] - }, - "documentation": null, - "id": 3461, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3441, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "788:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "788:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3443, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "796:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "796:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "787:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3461, - "src": "827:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3445, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "827:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "826:8:26" - }, - "scope": 3512, - "src": "775:111:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3488, - "nodeType": "Block", - "src": "951:65:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3470, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "961:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3471, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "965:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3472, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "969:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "965:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "961:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3475, - "nodeType": "ExpressionStatement", - "src": "961:9:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3477, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "988:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "993:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "988:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3480, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "998:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "1002:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3483, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "1007:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "998:10:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "988:20:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3476, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "980:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "980:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3487, - "nodeType": "ExpressionStatement", - "src": "980:29:26" - } - ] - }, - "documentation": null, - "id": 3489, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3466, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3463, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "904:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "904:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3465, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "912:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3468, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "943:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "943:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "942:8:26" - }, - "scope": 3512, - "src": "891:125:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "1081:50:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3499, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1099:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1103:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1099:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "1091:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1091:14:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3503, - "nodeType": "ExpressionStatement", - "src": "1091:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3504, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3496, - "src": "1115:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3505, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "1119:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "1123:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1119:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1115:9:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "1115:9:26" - } - ] - }, - "documentation": null, - "id": 3511, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3491, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1034:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3490, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1042:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3492, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1042:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1033:16:26" - }, - "payable": false, - "returnParameters": { - "id": 3497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3496, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1073:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1073:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1072:8:26" - }, - "scope": 3512, - "src": "1021:110:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 3968, - "src": "636:497:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3579, - "linearizedBaseContracts": [ - 3579 - ], - "name": "ERC20Interface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3517, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3515, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3517, - "src": "1473:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3514, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1473:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1472:6:26" - }, - "scope": 3579, - "src": "1425:54:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3524, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1503:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1503:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1502:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3524, - "src": "1548:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1548:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1547:14:26" - }, - "scope": 3579, - "src": "1484:78:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3533, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3526, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1586:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1586:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3528, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1606:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1606:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1585:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3533, - "src": "1648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1648:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:16:26" - }, - "scope": 3579, - "src": "1567:97:26", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3542, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1687:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3534, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1687:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3537, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1699:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3536, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1699:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1686:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "1728:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3539, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1728:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1727:14:26" - }, - "scope": 3579, - "src": "1669:73:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3551, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3544, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1764:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1764:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1781:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1781:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "1810:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3548, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1810:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1809:14:26" - }, - "scope": 3579, - "src": "1747:77:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 3562, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3553, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1851:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1851:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3555, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1865:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3554, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3557, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1877:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1877:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3560, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "1906:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3559, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1906:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1905:14:26" - }, - "scope": 3579, - "src": "1829:91:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3570, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 3569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1941:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1941:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1963:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1963:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3570, - "src": "1983:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1983:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1940:55:26" - }, - "src": "1926:70:26" - }, - { - "anonymous": false, - "documentation": null, - "id": 3578, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 3577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3572, - "indexed": true, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2016:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2016:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2044:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2044:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3576, - "indexed": false, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3578, - "src": "2069:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2015:66:26" - }, - "src": "2001:81:26" - } - ], - "scope": 3968, - "src": "1395:689:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 3591, - "linearizedBaseContracts": [ - 3591 - ], - "name": "ApproveAndCallFallBack", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 3590, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "receiveApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3581, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2416:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2416:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3583, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2430:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2430:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2446:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2446:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "2461:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3586, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2461:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2415:57:26" - }, - "payable": false, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "2479:0:26" - }, - "scope": 3591, - "src": "2391:89:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2353:129:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3660, - "linearizedBaseContracts": [ - 3660 - ], - "name": "Owned", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3593, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2684:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2684:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3595, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 3660, - "src": "2710:23:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 3601, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3597, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2767:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3596, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2767:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3599, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3601, - "src": "2790:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3598, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2790:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2766:44:26" - }, - "src": "2740:71:26" - }, - { - "body": { - "id": 3609, - "nodeType": "Block", - "src": "2838:35:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3604, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2848:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2856:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2856:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2848:18:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3608, - "nodeType": "ExpressionStatement", - "src": "2848:18:26" - } - ] - }, - "documentation": null, - "id": 3610, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3602, - "nodeType": "ParameterList", - "parameters": [], - "src": "2828:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:0:26" - }, - "scope": 3660, - "src": "2817:56:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "2898:56:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3613, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "2916:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2916:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "2930:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2916:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3612, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "2908:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2908:28:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3618, - "nodeType": "ExpressionStatement", - "src": "2908:28:26" - }, - { - "id": 3619, - "nodeType": "PlaceholderStatement", - "src": "2946:1:26" - } - ] - }, - "documentation": null, - "id": 3621, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 3611, - "nodeType": "ParameterList", - "parameters": [], - "src": "2898:0:26" - }, - "src": "2879:75:26", - "visibility": "internal" - }, - { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "3023:37:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3628, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3033:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "3044:9:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3033:20:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "3033:20:26" - } - ] - }, - "documentation": null, - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3626, - "modifierName": { - "argumentTypes": null, - "id": 3625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "3013:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3013:9:26" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "2987:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2987:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2986:19:26" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [], - "src": "3023:0:26" - }, - "scope": 3660, - "src": "2960:100:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3658, - "nodeType": "Block", - "src": "3099:157:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3637, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "3117:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3639, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3131:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3117:22:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3636, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4494, - 4495 - ], - "referencedDeclaration": 4494, - "src": "3109:7:26", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3109:31:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "3109:31:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3644, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3176:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3645, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3643, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3601, - "src": "3155:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3155:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "EmitStatement", - "src": "3150:42:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3648, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "3202:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3649, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3210:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3202:16:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "3202:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3652, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3595, - "src": "3228:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3239:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3239:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3228:21:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3657, - "nodeType": "ExpressionStatement", - "src": "3228:21:26" - } - ] - }, - "documentation": null, - "id": 3659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "acceptOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3634, - "nodeType": "ParameterList", - "parameters": [], - "src": "3089:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3635, - "nodeType": "ParameterList", - "parameters": [], - "src": "3099:0:26" - }, - "scope": 3660, - "src": "3065:191:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "2663:595:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3661, - "name": "ERC20Interface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3579, - "src": "3528:14:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3662, - "nodeType": "InheritanceSpecifier", - "src": "3528:14:26" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3663, - "name": "Owned", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3660, - "src": "3544:5:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Owned_$3660", - "typeString": "contract Owned" - } - }, - "id": 3664, - "nodeType": "InheritanceSpecifier", - "src": "3544:5:26" - } - ], - "contractDependencies": [ - 3579, - 3660 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3967, - "linearizedBaseContracts": [ - 3967, - 3660, - 3579 - ], - "name": "TestToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3667, - "libraryName": { - "contractScope": null, - "id": 3665, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3512, - "src": "3562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3512", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3556:24:26", - "typeName": { - "id": 3666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3575:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 3669, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3586:20:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3668, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3586:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3671, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3612:19:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3612:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3673, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3637:21:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3672, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3637:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3675, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3664:17:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3664:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3688:33:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 3678, - "keyType": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3696:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3688:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3707:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3685, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 3967, - "src": "3727:52:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 3684, - "keyType": { - "id": 3680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3735:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3727:44:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3683, - "keyType": { - "id": 3681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3754:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3746:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3765:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3724, - "nodeType": "Block", - "src": "3987:235:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3688, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "3997:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "544b4e", - "id": 3689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4006:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ee187a325c80a9ca820b4f297a58770bf5a85fede3756f8e7e9d14ff37d7b66", - "typeString": "literal_string \"TKN\"" - }, - "value": "TKN" - }, - "src": "3997:14:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3691, - "nodeType": "ExpressionStatement", - "src": "3997:14:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3692, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3671, - "src": "4021:4:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "546f6b656e204578616d706c65", - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4028:15:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e57db44f555e20abcea99743d90b2c763b40df4478f8c8195ecabb23fc906e9a", - "typeString": "literal_string \"Token Example\"" - }, - "value": "Token Example" - }, - "src": "4021:22:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "4021:22:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3696, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4053:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4064:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "4053:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 3699, - "nodeType": "ExpressionStatement", - "src": "4053:13:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3700, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4076:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030", - "id": 3701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4091:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4101:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3704, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3673, - "src": "4110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 3703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4105:4:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 3705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4105:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4101:18:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4091:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3709, - "nodeType": "ExpressionStatement", - "src": "4076:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3710, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4129:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3712, - "indexExpression": { - "argumentTypes": null, - "id": 3711, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4129:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3713, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4147:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4129:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3715, - "nodeType": "ExpressionStatement", - "src": "4129:30:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4191:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4183:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4183:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3720, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "4195:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3721, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4202:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3716, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "4174:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4174:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3723, - "nodeType": "EmitStatement", - "src": "4169:46:26" - } - ] - }, - "documentation": null, - "id": 3725, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3686, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3987:0:26" - }, - "scope": 3967, - "src": "3966:256:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3739, - "nodeType": "Block", - "src": "4459:62:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3732, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4493:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4510:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4502:7:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4502:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4493:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "4476:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "4476:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4476:38:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3729, - "id": 3738, - "nodeType": "Return", - "src": "4469:45:26" - } - ] - }, - "documentation": null, - "id": 3740, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3726, - "nodeType": "ParameterList", - "parameters": [], - "src": "4429:2:26" - }, - "payable": false, - "returnParameters": { - "id": 3729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3728, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3740, - "src": "4453:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4453:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4452:6:26" - }, - "scope": 3967, - "src": "4409:112:26", - "stateMutability": "view", - "superFunction": 3517, - "visibility": "public" - }, - { - "body": { - "id": 3751, - "nodeType": "Block", - "src": "4816:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3747, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "4833:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3749, - "indexExpression": { - "argumentTypes": null, - "id": 3748, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "4842:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3746, - "id": 3750, - "nodeType": "Return", - "src": "4826:27:26" - } - ] - }, - "documentation": null, - "id": 3752, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3742, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4761:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:20:26" - }, - "payable": false, - "returnParameters": { - "id": 3746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3745, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 3752, - "src": "4802:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4802:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4801:14:26" - }, - "scope": 3967, - "src": "4742:118:26", - "stateMutability": "view", - "superFunction": 3524, - "visibility": "public" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5276:189:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3761, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5286:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3764, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3762, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5295:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5295:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5286:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3770, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5334:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5309:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3768, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5318:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5318:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5309:20:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "5309:24:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5309:32:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5286:55:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3773, - "nodeType": "ExpressionStatement", - "src": "5286:55:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5351:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5360:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5351:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3781, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5383:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3777, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "5366:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3779, - "indexExpression": { - "argumentTypes": null, - "id": 3778, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5375:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5366:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "5366:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5366:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5351:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3784, - "nodeType": "ExpressionStatement", - "src": "5351:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3786, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "5414:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5414:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3788, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3754, - "src": "5426:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3789, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3756, - "src": "5430:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3785, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5405:32:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3791, - "nodeType": "EmitStatement", - "src": "5400:37:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5454:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3760, - "id": 3793, - "nodeType": "Return", - "src": "5447:11:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3754, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5221:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5221:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3756, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5233:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5233:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5220:25:26" - }, - "payable": false, - "returnParameters": { - "id": 3760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "5262:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5262:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5261:14:26" - }, - "scope": 3967, - "src": "5203:262:26", - "stateMutability": "nonpayable", - "superFunction": 3542, - "visibility": "public" - }, - { - "body": { - "id": 3822, - "nodeType": "Block", - "src": "6048:127:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3808, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3805, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6066:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6066:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6058:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3807, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6078:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6058:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3810, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6089:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3812, - "nodeType": "ExpressionStatement", - "src": "6058:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6119:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6119:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "6131:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "6140:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3813, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "6110:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6110:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3819, - "nodeType": "EmitStatement", - "src": "6105:42:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6164:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3803, - "id": 3821, - "nodeType": "Return", - "src": "6157:11:26" - } - ] - }, - "documentation": null, - "id": 3823, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "5988:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3796, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5988:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6005:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6005:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5987:30:26" - }, - "payable": false, - "returnParameters": { - "id": 3803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3802, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3823, - "src": "6034:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6034:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6033:14:26" - }, - "scope": 3967, - "src": "5971:204:26", - "stateMutability": "nonpayable", - "superFunction": 3551, - "visibility": "public" - }, - { - "body": { - "id": 3881, - "nodeType": "Block", - "src": "6798:246:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3834, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6808:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3836, - "indexExpression": { - "argumentTypes": null, - "id": 3835, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6817:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6808:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6844:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6825:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3839, - "indexExpression": { - "argumentTypes": null, - "id": 3838, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6834:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6825:14:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6825:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6825:26:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6808:43:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3844, - "nodeType": "ExpressionStatement", - "src": "6808:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3845, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6861:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3849, - "indexExpression": { - "argumentTypes": null, - "id": 3846, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6869:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6861:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3850, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6875:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6875:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6861:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3858, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6919:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "6889:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6897:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3856, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3854, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "6903:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6903:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6889:25:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3461, - "src": "6889:29:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6889:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6861:65:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3861, - "nodeType": "ExpressionStatement", - "src": "6861:65:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3862, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6936:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3864, - "indexExpression": { - "argumentTypes": null, - "id": 3863, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6945:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6936:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3869, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "6968:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3679, - "src": "6951:8:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3867, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "6960:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6951:12:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3439, - "src": "6951:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6951:24:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6936:39:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "6936:39:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3825, - "src": "6999:4:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "7005:2:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3876, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "7009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "6990:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:26:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3878, - "nodeType": "EmitStatement", - "src": "6985:31:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7033:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3833, - "id": 3880, - "nodeType": "Return", - "src": "7026:11:26" - } - ] - }, - "documentation": null, - "id": 3882, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3825, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6729:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3824, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6729:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3827, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6743:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6743:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3829, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6755:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6755:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6728:39:26" - }, - "payable": false, - "returnParameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3882, - "src": "6784:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6783:14:26" - }, - "scope": 3967, - "src": "6707:337:26", - "stateMutability": "nonpayable", - "superFunction": 3562, - "visibility": "public" - }, - { - "body": { - "id": 3897, - "nodeType": "Block", - "src": "7418:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3891, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7435:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3893, - "indexExpression": { - "argumentTypes": null, - "id": 3892, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3884, - "src": "7443:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3895, - "indexExpression": { - "argumentTypes": null, - "id": 3894, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3886, - "src": "7455:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7435:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3890, - "id": 3896, - "nodeType": "Return", - "src": "7428:35:26" - } - ] - }, - "documentation": null, - "id": 3898, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7344:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7344:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3886, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7364:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7364:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7343:37:26" - }, - "payable": false, - "returnParameters": { - "id": 3890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3889, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 3898, - "src": "7402:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7402:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7401:16:26" - }, - "scope": 3967, - "src": "7325:145:26", - "stateMutability": "view", - "superFunction": 3533, - "visibility": "public" - }, - { - "body": { - "id": 3938, - "nodeType": "Block", - "src": "7926:216:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3685, - "src": "7936:7:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7944:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7944:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7936:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3914, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "7956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7936:28:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3915, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "7967:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7936:37:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3917, - "nodeType": "ExpressionStatement", - "src": "7936:37:26" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3919, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "7997:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7997:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3921, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8009:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8018:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3918, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "7988:8:26", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7988:37:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3924, - "nodeType": "EmitStatement", - "src": "7983:42:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3929, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4491, - "src": "8083:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8083:10:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3931, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3902, - "src": "8095:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3932, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4574, - "src": "8103:4:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - } - }, - { - "argumentTypes": null, - "id": 3933, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3904, - "src": "8109:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_TestToken_$3967", - "typeString": "contract TestToken" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3926, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "8058:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "name": "ApproveAndCallFallBack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "8035:22:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ApproveAndCallFallBack_$3591_$", - "typeString": "type(contract ApproveAndCallFallBack)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:31:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ApproveAndCallFallBack_$3591", - "typeString": "contract ApproveAndCallFallBack" - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "receiveApproval", - "nodeType": "MemberAccess", - "referencedDeclaration": 3590, - "src": "8035:47:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,bytes memory) external" - } - }, - "id": 3934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8035:79:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3935, - "nodeType": "ExpressionStatement", - "src": "8035:79:26" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8131:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3908, - "id": 3937, - "nodeType": "Return", - "src": "8124:11:26" - } - ] - }, - "documentation": null, - "id": 3939, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3900, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7854:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7854:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3902, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7871:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7871:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7884:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3903, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7884:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7853:42:26" - }, - "payable": false, - "returnParameters": { - "id": 3908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3907, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3939, - "src": "7912:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3906, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7912:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7911:14:26" - }, - "scope": 3967, - "src": "7830:312:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3945, - "nodeType": "Block", - "src": "8360:25:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3942, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4496, - 4497 - ], - "referencedDeclaration": 4496, - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8370:8:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "8370:8:26" - } - ] - }, - "documentation": null, - "id": 3946, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3940, - "nodeType": "ParameterList", - "parameters": [], - "src": "8342:2:26" - }, - "payable": true, - "returnParameters": { - "id": 3941, - "nodeType": "ParameterList", - "parameters": [], - "src": "8360:0:26" - }, - "scope": 3967, - "src": "8333:52:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3965, - "nodeType": "Block", - "src": "8723:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3593, - "src": "8778:5:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3962, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3950, - "src": "8785:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3958, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3948, - "src": "8755:12:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3957, - "name": "ERC20Interface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3579, - "src": "8740:14:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Interface_$3579_$", - "typeString": "type(contract ERC20Interface)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:28:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Interface_$3579", - "typeString": "contract ERC20Interface" - } - }, - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3542, - "src": "8740:37:26", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:52:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3956, - "id": 3964, - "nodeType": "Return", - "src": "8733:59:26" - } - ] - }, - "documentation": null, - "id": 3966, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3953, - "modifierName": { - "argumentTypes": null, - "id": 3952, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "8690:9:26", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8690:9:26" - } - ], - "name": "transferAnyERC20Token", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3948, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8648:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3947, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3950, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8670:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3949, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8670:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8647:35:26" - }, - "payable": false, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 3966, - "src": "8709:12:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3954, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8709:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8708:14:26" - }, - "scope": 3967, - "src": "8617:182:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3968, - "src": "3506:5295:26" - } - ], - "src": "0:8801:26" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x63f77b7e9a9fb2cc566671e3ecbdad8d969ae410", - "transactionHash": "0xbb5fd5b0cda13b1f61dcd022e0619cb43e9d5cb78ce71264fd95d4555ac115b0" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-09-26T08:56:03.745Z" -} \ No newline at end of file diff --git a/scripts/start.js b/scripts/start.js index 2620df06..d57ef6f1 100644 --- a/scripts/start.js +++ b/scripts/start.js @@ -1,180 +1,174 @@ /*eslint-disable*/ -process.env.NODE_ENV = 'development'; +process.env.NODE_ENV = 'development' // Load environment variables from .env file. Suppress warnings using silent // if this file is missing. dotenv will never modify any environment variables // that have already been set. // https://github.com/motdotla/dotenv -require('dotenv').config({silent: true}); +require('dotenv').config({ silent: true }) -var chalk = require('chalk'); -var webpack = require('webpack'); -var WebpackDevServer = require('webpack-dev-server'); -var historyApiFallback = require('connect-history-api-fallback'); -var httpProxyMiddleware = require('http-proxy-middleware'); -var detect = require('detect-port'); -var clearConsole = require('react-dev-utils/clearConsole'); -var checkRequiredFiles = require('react-dev-utils/checkRequiredFiles'); -var formatWebpackMessages = require('react-dev-utils/formatWebpackMessages'); -var getProcessForPort = require('react-dev-utils/getProcessForPort'); -var openBrowser = require('react-dev-utils/openBrowser'); -var pathExists = require('path-exists'); -var config = require('../config/webpack.config.dev'); -var paths = require('../config/paths'); +var chalk = require('chalk') +var webpack = require('webpack') +var WebpackDevServer = require('webpack-dev-server') +var historyApiFallback = require('connect-history-api-fallback') +var httpProxyMiddleware = require('http-proxy-middleware') +var detect = require('detect-port') +var clearConsole = require('react-dev-utils/clearConsole') +var checkRequiredFiles = require('react-dev-utils/checkRequiredFiles') +var formatWebpackMessages = require('react-dev-utils/formatWebpackMessages') +var getProcessForPort = require('react-dev-utils/getProcessForPort') +var openBrowser = require('react-dev-utils/openBrowser') +var pathExists = require('path-exists') +var config = require('../config/webpack.config.dev') +var paths = require('../config/paths') -var useYarn = pathExists.sync(paths.yarnLockFile); -var cli = useYarn ? 'yarn' : 'npm'; -var isInteractive = process.stdout.isTTY; +var useYarn = pathExists.sync(paths.yarnLockFile) +var cli = useYarn ? 'yarn' : 'npm' +var isInteractive = process.stdout.isTTY // Warn and crash if required files are missing if (!checkRequiredFiles([paths.appHtml, paths.appIndexJs])) { - process.exit(1); + process.exit(1) } // Tools like Cloud9 rely on this. -var DEFAULT_PORT = process.env.PORT || 3000; -var compiler; -var handleCompile; - -// You can safely remove this after ejecting. -// We only use this block for testing of Create React App itself: -var isSmokeTest = process.argv.some(arg => arg.indexOf('--smoke-test') > -1); -if (isSmokeTest) { - handleCompile = function (err, stats) { - if (err || stats.hasErrors() || stats.hasWarnings()) { - process.exit(1); - } else { - process.exit(0); - } - }; -} +var DEFAULT_PORT = process.env.PORT || 3000 +var compiler +var handleCompile function setupCompiler(host, port, protocol) { // "Compiler" is a low-level interface to Webpack. // It lets us listen to some events and provide our own custom messages. - compiler = webpack(config, handleCompile); + compiler = webpack(config, handleCompile) // "invalid" event fires when you have changed a file, and Webpack is // recompiling a bundle. WebpackDevServer takes care to pause serving the // bundle, so if you refresh, it'll wait instead of serving the old one. // "invalid" is short for "bundle invalidated", it doesn't imply any errors. - compiler.plugin('invalid', function() { + compiler.hooks.invalid.tap('invalid', () => { if (isInteractive) { - clearConsole(); + clearConsole() } - console.log('Compiling...'); - }); + console.log('Compiling...') + }) - var isFirstCompile = true; + var isFirstCompile = true // "done" event fires when Webpack has finished recompiling the bundle. // Whether or not you have warnings or errors, you will get this event. - compiler.plugin('done', function(stats) { + compiler.hooks.done.tap('done', function(stats) { if (isInteractive) { - clearConsole(); + clearConsole() } // We have switched off the default Webpack output in WebpackDevServer // options so we are going to "massage" the warnings and errors and present // them in a readable focused way. - var messages = formatWebpackMessages(stats.toJson({}, true)); - var isSuccessful = !messages.errors.length && !messages.warnings.length; - var showInstructions = isSuccessful && (isInteractive || isFirstCompile); + var messages = formatWebpackMessages(stats.toJson({}, true)) + var isSuccessful = !messages.errors.length && !messages.warnings.length + var showInstructions = isSuccessful && (isInteractive || isFirstCompile) if (isSuccessful) { - console.log(chalk.green('Compiled successfully!')); + console.log(chalk.green('Compiled successfully!')) } if (showInstructions) { - console.log(); - console.log('The app is running at:'); - console.log(); - console.log(' ' + chalk.cyan(protocol + '://' + host + ':' + port + '/')); - console.log(); - console.log('Note that the development build is not optimized.'); - console.log('To create a production build, use ' + chalk.cyan(cli + ' run build') + '.'); - console.log(); - isFirstCompile = false; + console.log() + console.log('The app is running at:') + console.log() + console.log(' ' + chalk.cyan(protocol + '://' + host + ':' + port + '/')) + console.log() + console.log('Note that the development build is not optimized.') + console.log('To create a production build, use ' + chalk.cyan(cli + ' run build') + '.') + console.log() + isFirstCompile = false } // If errors exist, only show errors. if (messages.errors.length) { - console.log(chalk.red('Failed to compile.')); - console.log(); + console.log(chalk.red('Failed to compile.')) + console.log() messages.errors.forEach(message => { - console.log(message); - console.log(); - }); - return; + console.log(message) + console.log() + }) + return } // Show warnings if no errors were found. if (messages.warnings.length) { - console.log(chalk.yellow('Compiled with warnings.')); - console.log(); + console.log(chalk.yellow('Compiled with warnings.')) + console.log() messages.warnings.forEach(message => { - console.log(message); - console.log(); - }); + console.log(message) + console.log() + }) // Teach some ESLint tricks. - console.log('You may use special comments to disable some warnings.'); - console.log('Use ' + chalk.yellow('// eslint-disable-next-line') + ' to ignore the next line.'); - console.log('Use ' + chalk.yellow('/* eslint-disable */') + ' to ignore all warnings in a file.'); + console.log('You may use special comments to disable some warnings.') + console.log('Use ' + chalk.yellow('// eslint-disable-next-line') + ' to ignore the next line.') + console.log('Use ' + chalk.yellow('/* eslint-disable */') + ' to ignore all warnings in a file.') } - }); + }) } // We need to provide a custom onError function for httpProxyMiddleware. // It allows us to log custom error messages on the console. function onProxyError(proxy) { - return function(err, req, res){ - var host = req.headers && req.headers.host; + return function(err, req, res) { + var host = req.headers && req.headers.host console.log( - chalk.red('Proxy error:') + ' Could not proxy request ' + chalk.cyan(req.url) + - ' from ' + chalk.cyan(host) + ' to ' + chalk.cyan(proxy) + '.' - ); + chalk.red('Proxy error:') + + ' Could not proxy request ' + + chalk.cyan(req.url) + + ' from ' + + chalk.cyan(host) + + ' to ' + + chalk.cyan(proxy) + + '.', + ) console.log( 'See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (' + - chalk.cyan(err.code) + ').' - ); - console.log(); + chalk.cyan(err.code) + + ').', + ) + console.log() // And immediately send the proper error response to the client. // Otherwise, the request will eventually timeout with ERR_EMPTY_RESPONSE on the client side. if (res.writeHead && !res.headersSent) { - res.writeHead(500); + res.writeHead(500) } - res.end('Proxy error: Could not proxy request ' + req.url + ' from ' + - host + ' to ' + proxy + ' (' + err.code + ').' - ); + res.end( + 'Proxy error: Could not proxy request ' + req.url + ' from ' + host + ' to ' + proxy + ' (' + err.code + ').', + ) } } function addMiddleware(devServer) { // `proxy` lets you to specify a fallback server during development. // Every unrecognized request will be forwarded to it. - var proxy = require(paths.appPackageJson).proxy; - devServer.use(historyApiFallback({ - // Paths with dots should still use the history fallback. - // See https://github.com/facebookincubator/create-react-app/issues/387. - disableDotRule: true, - // For single page apps, we generally want to fallback to /index.html. - // However we also want to respect `proxy` for API calls. - // So if `proxy` is specified, we need to decide which fallback to use. - // We use a heuristic: if request `accept`s text/html, we pick /index.html. - // Modern browsers include text/html into `accept` header when navigating. - // However API calls like `fetch()` won’t generally accept text/html. - // If this heuristic doesn’t work well for you, don’t use `proxy`. - htmlAcceptHeaders: proxy ? - ['text/html'] : - ['text/html', '*/*'] - })); + var proxy = require(paths.appPackageJson).proxy + devServer.use( + historyApiFallback({ + // Paths with dots should still use the history fallback. + // See https://github.com/facebookincubator/create-react-app/issues/387. + disableDotRule: true, + // For single page apps, we generally want to fallback to /index.html. + // However we also want to respect `proxy` for API calls. + // So if `proxy` is specified, we need to decide which fallback to use. + // We use a heuristic: if request `accept`s text/html, we pick /index.html. + // Modern browsers include text/html into `accept` header when navigating. + // However API calls like `fetch()` won’t generally accept text/html. + // If this heuristic doesn’t work well for you, don’t use `proxy`. + htmlAcceptHeaders: proxy ? ['text/html'] : ['text/html', '*/*'], + }), + ) if (proxy) { if (typeof proxy !== 'string') { - console.log(chalk.red('When specified, "proxy" in package.json must be a string.')); - console.log(chalk.red('Instead, the type of "proxy" was "' + typeof proxy + '".')); - console.log(chalk.red('Either remove "proxy" from package.json, or make it a string.')); - process.exit(1); + console.log(chalk.red('When specified, "proxy" in package.json must be a string.')) + console.log(chalk.red('Instead, the type of "proxy" was "' + typeof proxy + '".')) + console.log(chalk.red('Either remove "proxy" from package.json, or make it a string.')) + process.exit(1) } // Otherwise, if proxy is specified, we will let it handle any request. @@ -183,7 +177,7 @@ function addMiddleware(devServer) { // - /*.hot-update.json (WebpackDevServer uses this too for hot reloading) // - /sockjs-node/* (WebpackDevServer uses this for hot reloading) // Tip: use https://jex.im/regulex/ to visualize the regex - var mayProxy = /^(?!\/(index\.html$|.*\.hot-update\.json$|sockjs-node\/)).*$/; + var mayProxy = /^(?!\/(index\.html$|.*\.hot-update\.json$|sockjs-node\/)).*$/ // Pass the scope regex both to Express and to the middleware for proxying // of both HTTP and WebSockets to work without false positives. @@ -195,25 +189,25 @@ function addMiddleware(devServer) { // requests. To prevent CORS issues, we have to change // the Origin to match the target URL. if (proxyReq.getHeader('origin')) { - proxyReq.setHeader('origin', proxy); + proxyReq.setHeader('origin', proxy) } }, onError: onProxyError(proxy), secure: false, changeOrigin: true, - ws: true - }); - devServer.use(mayProxy, hpm); + ws: true, + }) + devServer.use(mayProxy, hpm) // Listen for the websocket 'upgrade' event and upgrade the connection. // If this is not done, httpProxyMiddleware will not try to upgrade until // an initial plain HTTP request is made. - devServer.listeningApp.on('upgrade', hpm.upgrade); + devServer.listeningApp.on('upgrade', hpm.upgrade) } // Finally, by now we have certainly resolved the URL. // It may be /index.html, so let the dev server try serving it again. - devServer.use(devServer.middleware); + devServer.use(devServer.middleware) } function runDevServer(host, port, protocol) { @@ -253,54 +247,54 @@ function runDevServer(host, port, protocol) { // Reportedly, this avoids CPU overload on some systems. // https://github.com/facebookincubator/create-react-app/issues/293 watchOptions: { - ignored: /node_modules/ + ignored: /node_modules/, }, // Enable HTTPS if the HTTPS environment variable is set to 'true' - https: protocol === "https", - host: host - }); + https: protocol === 'https', + host: host, + }) // Our custom middleware proxies requests to /index.html or a remote API. - addMiddleware(devServer); + addMiddleware(devServer) // Launch WebpackDevServer. devServer.listen(port, (err, result) => { if (err) { - return console.log(err); + return console.log(err) } if (isInteractive) { - clearConsole(); + clearConsole() } - console.log(chalk.cyan('Starting the development server...')); - console.log(); + console.log(chalk.cyan('Starting the development server...')) + console.log() if (isInteractive) { - openBrowser(protocol + '://' + host + ':' + port + '/'); + openBrowser(protocol + '://' + host + ':' + port + '/') } - }); + }) } function run(port) { - var protocol = process.env.HTTPS === 'true' ? "https" : "http"; - var host = process.env.HOST || 'localhost'; - setupCompiler(host, port, protocol); - runDevServer(host, port, protocol); + var protocol = process.env.HTTPS === 'true' ? 'https' : 'http' + var host = process.env.HOST || 'localhost' + setupCompiler(host, port, protocol) + runDevServer(host, port, protocol) } // We attempt to use the default port but if it is busy, we offer the user to // run on a different port. `detect()` Promise resolves to the next free port. detect(DEFAULT_PORT).then(port => { if (port === DEFAULT_PORT) { - run(port); - return; + run(port) + return } if (isInteractive) { - clearConsole(); - var existingProcess = getProcessForPort(DEFAULT_PORT); - run(port); + clearConsole() + var existingProcess = getProcessForPort(DEFAULT_PORT) + run(port) } else { - console.log(chalk.red('Something is already running on port ' + DEFAULT_PORT + '.')); + console.log(chalk.red('Something is already running on port ' + DEFAULT_PORT + '.')) } -}); +}) diff --git a/scripts/test.js b/scripts/test.js index 5ac4f6e4..ff7207c1 100644 --- a/scripts/test.js +++ b/scripts/test.js @@ -1,18 +1,20 @@ -process.env.NODE_ENV = 'test'; -process.env.PUBLIC_URL = ''; +// @flow +process.env.NODE_ENV = 'test' +process.env.PUBLIC_URL = '' // Load environment variables from .env file. Suppress warnings using silent // if this file is missing. dotenv will never modify any environment variables // that have already been set. // https://github.com/motdotla/dotenv -require('dotenv').config({silent: true}); +require('dotenv').config({ silent: true }) -const jest = require('jest'); -const argv = process.argv.slice(2); +const jest = require('jest') + +const argv = process.argv.slice(2) // Watch unless on CI or in coverage mode if (!process.env.CI && argv.indexOf('--coverage') < 0) { - argv.push('--watch'); + argv.push('--watch') } -jest.run(argv); +jest.run(argv) diff --git a/src/routes/open/assets/trash.svg b/src/assets/icons/trash.svg similarity index 100% rename from src/routes/open/assets/trash.svg rename to src/assets/icons/trash.svg diff --git a/src/components/EtherscanLink/index.jsx b/src/components/EtherscanLink/index.jsx new file mode 100644 index 00000000..1e1e743e --- /dev/null +++ b/src/components/EtherscanLink/index.jsx @@ -0,0 +1,31 @@ +// @flow +import React from 'react' +import { connect } from 'react-redux' +import OpenInNew from '@material-ui/icons/OpenInNew' +import { getEtherScanLink } from '~/logic/wallets/getWeb3' +import { shortVersionOf } from '~/logic/wallets/ethAddresses' +import { secondary } from '~/theme/variables' +import { networkSelector } from '~/logic/wallets/store/selectors' + +const openIconStyle = { + height: '13px', + color: secondary, +} + +type EtherscanLinkProps = { + type: 'tx' | 'address', + value: string, + currentNetwork: string, +} + +const EtherscanLink = ({ type, value, currentNetwork }: EtherscanLinkProps) => ( + + {shortVersionOf(value, 4)} + + +) + +export default connect( + state => ({ currentNetwork: networkSelector(state) }), + null, +)(EtherscanLink) diff --git a/src/components/Footer/index.jsx b/src/components/Footer/index.jsx index 2c5882c5..8ab1c99d 100644 --- a/src/components/Footer/index.jsx +++ b/src/components/Footer/index.jsx @@ -9,7 +9,7 @@ import styles from './index.scss' const Footer = () => ( - Welcome + Add Safe Safe List diff --git a/src/components/Footer/index.scss b/src/components/Footer/index.scss index 91887ad4..0f3b3eba 100644 --- a/src/components/Footer/index.scss +++ b/src/components/Footer/index.scss @@ -7,6 +7,7 @@ align-items: center; border: solid 0.5px $border; background-color: white; + margin-top: 50px; } @media only screen and (max-width: $(screenXs)px) { diff --git a/src/components/Footer/index.stories.js b/src/components/Footer/index.stories.js index 1af60805..f3220920 100644 --- a/src/components/Footer/index.stories.js +++ b/src/components/Footer/index.stories.js @@ -7,7 +7,7 @@ import Component from './index' const FrameDecorator = story => (
- { story() } + {story()}
) diff --git a/src/components/Header/assets/gnosis-safe-icon.svg b/src/components/Header/assets/gnosis-safe-icon.svg new file mode 100644 index 00000000..7c7d342a --- /dev/null +++ b/src/components/Header/assets/gnosis-safe-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/Header/assets/metamask.svg b/src/components/Header/assets/metamask-icon.svg similarity index 100% rename from src/components/Header/assets/metamask.svg rename to src/components/Header/assets/metamask-icon.svg diff --git a/src/components/Header/component/CircleDot.jsx b/src/components/Header/component/CircleDot.jsx index ef208715..32ff7f54 100644 --- a/src/components/Header/component/CircleDot.jsx +++ b/src/components/Header/component/CircleDot.jsx @@ -1,8 +1,8 @@ // @flow import * as React from 'react' import { withStyles } from '@material-ui/core/styles' -import Block from '~/components/layout/Block' import Dot from '@material-ui/icons/FiberManualRecord' +import Block from '~/components/layout/Block' import Img from '~/components/layout/Img' import { fancy, border, warning } from '~/theme/variables' @@ -61,7 +61,15 @@ const buildDotStyleFrom = (size: number, top: number, right: number, mode: Mode) }) const KeyRing = ({ - classes, circleSize, keySize, dotSize, dotTop, dotRight, mode, center = false, hideDot = false, + classes, + circleSize, + keySize, + dotSize, + dotTop, + dotRight, + mode, + center = false, + hideDot = false, }: Props) => { const keyStyle = buildKeyStyleFrom(circleSize, center, dotSize) const dotStyle = buildDotStyleFrom(dotSize, dotTop, dotRight, mode) @@ -80,7 +88,7 @@ const KeyRing = ({ className={isWarning ? classes.warning : undefined} /> - { !hideDot && } + {!hideDot && } ) diff --git a/src/components/Header/component/Layout.jsx b/src/components/Header/component/Layout.jsx index df166bd8..cf2c8012 100644 --- a/src/components/Header/component/Layout.jsx +++ b/src/components/Header/component/Layout.jsx @@ -1,5 +1,6 @@ // @flow import * as React from 'react' +import { Link } from 'react-router-dom' import { withStyles } from '@material-ui/core/styles' import Grow from '@material-ui/core/Grow' import ClickAwayListener from '@material-ui/core/ClickAwayListener' @@ -18,8 +19,8 @@ const logo = require('../assets/gnosis-safe-logo.svg') type Props = Open & { classes: Object, - providerDetails: React$Node, - providerInfo: React$Node, + providerDetails: React.Node, + providerInfo: React.Node, } const styles = () => ({ @@ -49,7 +50,9 @@ const Layout = openHoc(({ - Gnosis Team Safe + + Gnosis Team Safe + @@ -58,9 +61,7 @@ const Layout = openHoc(({ {providerRef => ( {({ TransitionProps }) => ( - + {providerDetails} diff --git a/src/components/Header/component/Layout.stories.js b/src/components/Header/component/Layout.stories.js index 01111749..7d0ccbe3 100644 --- a/src/components/Header/component/Layout.stories.js +++ b/src/components/Header/component/Layout.stories.js @@ -8,11 +8,7 @@ import UserDetails from './ProviderDetails/UserDetails' import ProviderDisconnected from './ProviderInfo/ProviderDisconnected' import ConnectDetails from './ProviderDetails/ConnectDetails' -const FrameDecorator = story => ( -
- { story() } -
-) +const FrameDecorator = story =>
{story()}
storiesOf('Components /Header', module) .addDecorator(FrameDecorator) @@ -36,12 +32,7 @@ storiesOf('Components /Header', module) const userAddress = '0x873faa4cddd5b157e8e5a57e7a5479afc5d30moe' const network = 'RINKEBY' const info = - const details = () + const details = return }) diff --git a/src/components/Header/component/Provider.jsx b/src/components/Header/component/Provider.jsx index 45df78d2..76fd061f 100644 --- a/src/components/Header/component/Provider.jsx +++ b/src/components/Header/component/Provider.jsx @@ -10,8 +10,8 @@ import { sm, md } from '~/theme/variables' type Props = Open & { classes: Object, - popupDetails: React$Node, - info: React$Node, + popupDetails: React.Node, + info: React.Node, children: Function, } @@ -55,16 +55,13 @@ class Provider extends React.Component {
- { info } - - { open ? : } + {info} + + {open ? : }
- { children(this.myRef) } + {children(this.myRef)}
) } diff --git a/src/components/Header/component/ProviderDetails/ConnectDetails.jsx b/src/components/Header/component/ProviderDetails/ConnectDetails.jsx index 4194942d..6e613caf 100644 --- a/src/components/Header/component/ProviderDetails/ConnectDetails.jsx +++ b/src/components/Header/component/ProviderDetails/ConnectDetails.jsx @@ -39,21 +39,19 @@ const ConnectDetails = ({ classes, onConnect }: Props) => (
- Connect a Wallet + + Connect a Wallet +
-
diff --git a/src/components/Header/component/ProviderDetails/UserDetails.jsx b/src/components/Header/component/ProviderDetails/UserDetails.jsx index 355cedbd..19eecc9c 100644 --- a/src/components/Header/component/ProviderDetails/UserDetails.jsx +++ b/src/components/Header/component/ProviderDetails/UserDetails.jsx @@ -3,22 +3,26 @@ import * as React from 'react' import classNames from 'classnames' import OpenInNew from '@material-ui/icons/OpenInNew' import { withStyles } from '@material-ui/core/styles' +import Dot from '@material-ui/icons/FiberManualRecord' import Paragraph from '~/components/layout/Paragraph' +import Link from '~/components/layout/Link' import Button from '~/components/layout/Button' import Identicon from '~/components/Identicon' -import Dot from '@material-ui/icons/FiberManualRecord' import Hairline from '~/components/layout/Hairline' import Img from '~/components/layout/Img' import Row from '~/components/layout/Row' import Block from '~/components/layout/Block' import Spacer from '~/components/Spacer' -import { xs, sm, md, lg, background, secondary, warning, connected as connectedBg } from '~/theme/variables' +import { + xs, sm, md, lg, background, secondary, warning, connected as connectedBg, +} from '~/theme/variables' import { upperFirst } from '~/utils/css' import { shortVersionOf } from '~/logic/wallets/ethAddresses' -import { openAddressInEtherScan } from '~/logic/wallets/getWeb3' +import { getEtherScanLink } from '~/logic/wallets/getWeb3' import CircleDot from '~/components/Header/component/CircleDot' -const metamask = require('../../assets/metamask.svg') +const metamaskIcon = require('../../assets/metamask-icon.svg') +const safeIcon = require('../../assets/gnosis-safe-icon.svg') const dot = require('../../assets/dotRinkeby.svg') type Props = { @@ -108,25 +112,28 @@ const UserDetails = ({ - { connected - ? - : - } + {connected ? ( + + ) : ( + + )} - {address} - { userAddress && - - } + + {address} + + {userAddress && ( + + + + )} - Status + + Status + @@ -135,16 +142,23 @@ const UserDetails = ({ - Client + + Client + - Metamask client + {provider === 'safe' + ? Safe client + : Metamask client + } {upperFirst(provider)} - Network + + Network + Network @@ -153,14 +167,10 @@ const UserDetails = ({ - diff --git a/src/components/Header/component/ProviderInfo/ProviderAccesible.jsx b/src/components/Header/component/ProviderInfo/ProviderAccesible.jsx index 2b338285..e8b5a9c9 100644 --- a/src/components/Header/component/ProviderInfo/ProviderAccesible.jsx +++ b/src/components/Header/component/ProviderInfo/ProviderAccesible.jsx @@ -54,18 +54,20 @@ const ProviderInfo = ({ return ( - { connected && + {connected && ( - } - { !connected && - - } + )} + {!connected && } - {providerText} - {cutAddress} + + {providerText} + + + {cutAddress} + ) diff --git a/src/components/Header/component/ProviderInfo/ProviderDisconnected.jsx b/src/components/Header/component/ProviderInfo/ProviderDisconnected.jsx index 2133bff9..4f7c0b88 100644 --- a/src/components/Header/component/ProviderInfo/ProviderDisconnected.jsx +++ b/src/components/Header/component/ProviderInfo/ProviderDisconnected.jsx @@ -33,8 +33,12 @@ const ProviderDesconnected = ({ classes }: Props) => ( - Not Connected - Connect Wallet + + Not Connected + + + Connect Wallet + ) diff --git a/src/components/Header/index.jsx b/src/components/Header/index.jsx index 12345328..6d4f95b0 100644 --- a/src/components/Header/index.jsx +++ b/src/components/Header/index.jsx @@ -2,8 +2,9 @@ import * as React from 'react' import { connect } from 'react-redux' import { logComponentStack, type Info } from '~/utils/logBoundaries' -import { SharedSnackbarConsumer, type Variant } from '~/components/SharedSnackBar/Context' +import { SharedSnackbarConsumer, type Variant } from '~/components/SharedSnackBar' import { WALLET_ERROR_MSG } from '~/logic/wallets/store/actions' +import { getProviderInfo } from '~/logic/wallets/getWeb3' import ProviderAccesible from './component/ProviderInfo/ProviderAccesible' import UserDetails from './component/ProviderDetails/UserDetails' import ProviderDisconnected from './component/ProviderInfo/ProviderDisconnected' @@ -12,9 +13,10 @@ import Layout from './component/Layout' import actions, { type Actions } from './actions' import selector, { type SelectorProps } from './selector' -type Props = Actions & SelectorProps & { - openSnackbar: (message: string, variant: Variant) => void, -} +type Props = Actions & + SelectorProps & { + openSnackbar: (message: string, variant: Variant) => void, + } type State = { hasError: boolean, @@ -26,22 +28,38 @@ class HeaderComponent extends React.PureComponent { } componentDidMount() { - this.props.fetchProvider(this.props.openSnackbar) + this.onConnect() } componentDidCatch(error: Error, info: Info) { + const { openSnackbar } = this.props this.setState({ hasError: true }) - this.props.openSnackbar(WALLET_ERROR_MSG, 'error') + openSnackbar(WALLET_ERROR_MSG, 'error') logComponentStack(error, info) } onDisconnect = () => { - this.props.removeProvider(this.props.openSnackbar) + const { removeProvider, openSnackbar } = this.props + clearInterval(this.providerListener) + + removeProvider(openSnackbar) } - onConnect = () => { - this.props.fetchProvider(this.props.openSnackbar) + onConnect = async () => { + const { fetchProvider, openSnackbar } = this.props + + clearInterval(this.providerListener) + let currentProvider: ProviderProps = await getProviderInfo() + fetchProvider(currentProvider, openSnackbar) + + this.providerListener = setInterval(async () => { + const newProvider: ProviderProps = await getProviderInfo() + if (JSON.stringify(currentProvider) !== JSON.stringify(newProvider)) { + fetchProvider(newProvider, openSnackbar) + } + currentProvider = newProvider + }, 2000) } getProviderInfoBased = () => { @@ -67,13 +85,15 @@ class HeaderComponent extends React.PureComponent { return } - return () + return ( + + ) } render() { @@ -84,14 +104,13 @@ class HeaderComponent extends React.PureComponent { } } -const Header = connect(selector, actions)(HeaderComponent) +const Header = connect( + selector, + actions, +)(HeaderComponent) const HeaderSnack = () => ( - - {({ openSnackbar }) => ( -
- )} - + {({ openSnackbar }) =>
} ) export default HeaderSnack diff --git a/src/components/Header/selector.js b/src/components/Header/selector.js index 76b98813..fb7e5e77 100644 --- a/src/components/Header/selector.js +++ b/src/components/Header/selector.js @@ -1,6 +1,12 @@ // @flow import { createStructuredSelector } from 'reselect' -import { providerNameSelector, userAccountSelector, networkSelector, availableSelector, loadedSelector } from '~/logic/wallets/store/selectors' +import { + providerNameSelector, + userAccountSelector, + networkSelector, + availableSelector, + loadedSelector, +} from '~/logic/wallets/store/selectors' export type SelectorProps = { provider: string, @@ -10,7 +16,7 @@ export type SelectorProps = { available: boolean, } -export default createStructuredSelector({ +export default createStructuredSelector({ provider: providerNameSelector, userAddress: userAccountSelector, network: networkSelector, diff --git a/src/components/Identicon/blockies.js b/src/components/Identicon/blockies.js index 1123ab5e..538b828d 100644 --- a/src/components/Identicon/blockies.js +++ b/src/components/Identicon/blockies.js @@ -1,10 +1,12 @@ /* eslint-disable */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (factory((global.blockies = {}))); -}(this, (function (exports) { - 'use strict'; +;(function(global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + ? factory(exports) + : typeof define === 'function' && define.amd + ? define(['exports'], factory) + : factory((global.blockies = {})) +})(this, function(exports) { + 'use strict' /** * A handy class to calculate color values. @@ -17,207 +19,210 @@ * */ - // helper functions for that ctx function write(buffer, offs) { for (var i = 2; i < arguments.length; i++) { for (var j = 0; j < arguments[i].length; j++) { - buffer[offs++] = arguments[i].charAt(j); + buffer[offs++] = arguments[i].charAt(j) } } } function byte2(w) { - return String.fromCharCode((w >> 8) & 255, w & 255); + return String.fromCharCode((w >> 8) & 255, w & 255) } function byte4(w) { - return String.fromCharCode((w >> 24) & 255, (w >> 16) & 255, (w >> 8) & 255, w & 255); + return String.fromCharCode((w >> 24) & 255, (w >> 16) & 255, (w >> 8) & 255, w & 255) } function byte2lsb(w) { - return String.fromCharCode(w & 255, (w >> 8) & 255); + return String.fromCharCode(w & 255, (w >> 8) & 255) } - var PNG = function (width, height, depth) { - - this.width = width; - this.height = height; - this.depth = depth; + var PNG = function(width, height, depth) { + this.width = width + this.height = height + this.depth = depth // pixel data and row filter identifier size - this.pix_size = height * (width + 1); + this.pix_size = height * (width + 1) // deflate header, pix_size, block headers, adler32 checksum - this.data_size = 2 + this.pix_size + 5 * Math.floor((0xfffe + this.pix_size) / 0xffff) + 4; + this.data_size = 2 + this.pix_size + 5 * Math.floor((0xfffe + this.pix_size) / 0xffff) + 4 // offsets and sizes of Png chunks - this.ihdr_offs = 0; // IHDR offset and size - this.ihdr_size = 4 + 4 + 13 + 4; - this.plte_offs = this.ihdr_offs + this.ihdr_size; // PLTE offset and size - this.plte_size = 4 + 4 + 3 * depth + 4; - this.trns_offs = this.plte_offs + this.plte_size; // tRNS offset and size - this.trns_size = 4 + 4 + depth + 4; - this.idat_offs = this.trns_offs + this.trns_size; // IDAT offset and size - this.idat_size = 4 + 4 + this.data_size + 4; - this.iend_offs = this.idat_offs + this.idat_size; // IEND offset and size - this.iend_size = 4 + 4 + 4; - this.buffer_size = this.iend_offs + this.iend_size; // total PNG size + this.ihdr_offs = 0 // IHDR offset and size + this.ihdr_size = 4 + 4 + 13 + 4 + this.plte_offs = this.ihdr_offs + this.ihdr_size // PLTE offset and size + this.plte_size = 4 + 4 + 3 * depth + 4 + this.trns_offs = this.plte_offs + this.plte_size // tRNS offset and size + this.trns_size = 4 + 4 + depth + 4 + this.idat_offs = this.trns_offs + this.trns_size // IDAT offset and size + this.idat_size = 4 + 4 + this.data_size + 4 + this.iend_offs = this.idat_offs + this.idat_size // IEND offset and size + this.iend_size = 4 + 4 + 4 + this.buffer_size = this.iend_offs + this.iend_size // total PNG size - this.buffer = new Array(); - this.palette = new Object(); - this.pindex = 0; + this.buffer = new Array() + this.palette = new Object() + this.pindex = 0 - var _crc32 = new Array(); + var _crc32 = new Array() // initialize buffer with zero bytes for (var i = 0; i < this.buffer_size; i++) { - this.buffer[i] = "\x00"; + this.buffer[i] = '\x00' } // initialize non-zero elements - write(this.buffer, this.ihdr_offs, byte4(this.ihdr_size - 12), 'IHDR', byte4(width), byte4(height), "\x08\x03"); - write(this.buffer, this.plte_offs, byte4(this.plte_size - 12), 'PLTE'); - write(this.buffer, this.trns_offs, byte4(this.trns_size - 12), 'tRNS'); - write(this.buffer, this.idat_offs, byte4(this.idat_size - 12), 'IDAT'); - write(this.buffer, this.iend_offs, byte4(this.iend_size - 12), 'IEND'); + write(this.buffer, this.ihdr_offs, byte4(this.ihdr_size - 12), 'IHDR', byte4(width), byte4(height), '\x08\x03') + write(this.buffer, this.plte_offs, byte4(this.plte_size - 12), 'PLTE') + write(this.buffer, this.trns_offs, byte4(this.trns_size - 12), 'tRNS') + write(this.buffer, this.idat_offs, byte4(this.idat_size - 12), 'IDAT') + write(this.buffer, this.iend_offs, byte4(this.iend_size - 12), 'IEND') // initialize deflate header - var header = ((8 + (7 << 4)) << 8) | (3 << 6); - header += 31 - (header % 31); + var header = ((8 + (7 << 4)) << 8) | (3 << 6) + header += 31 - (header % 31) - write(this.buffer, this.idat_offs + 8, byte2(header)); + write(this.buffer, this.idat_offs + 8, byte2(header)) // initialize deflate block headers for (var i = 0; (i << 16) - 1 < this.pix_size; i++) { - var size, bits; + var size, bits if (i + 0xffff < this.pix_size) { - size = 0xffff; - bits = "\x00"; + size = 0xffff + bits = '\x00' } else { - size = this.pix_size - (i << 16) - i; - bits = "\x01"; + size = this.pix_size - (i << 16) - i + bits = '\x01' } - write(this.buffer, this.idat_offs + 8 + 2 + (i << 16) + (i << 2), bits, byte2lsb(size), byte2lsb(~size)); + write(this.buffer, this.idat_offs + 8 + 2 + (i << 16) + (i << 2), bits, byte2lsb(size), byte2lsb(~size)) } /* Create crc32 lookup table */ for (var i = 0; i < 256; i++) { - var c = i; + var c = i for (var j = 0; j < 8; j++) { if (c & 1) { - c = -306674912 ^ ((c >> 1) & 0x7fffffff); + c = -306674912 ^ ((c >> 1) & 0x7fffffff) } else { - c = (c >> 1) & 0x7fffffff; + c = (c >> 1) & 0x7fffffff } } - _crc32[i] = c; + _crc32[i] = c } // compute the index into a png for a given pixel - this.index = function (x, y) { - var i = y * (this.width + 1) + x + 1; - var j = this.idat_offs + 8 + 2 + 5 * Math.floor((i / 0xffff) + 1) + i; - return j; - }; + this.index = function(x, y) { + var i = y * (this.width + 1) + x + 1 + var j = this.idat_offs + 8 + 2 + 5 * Math.floor(i / 0xffff + 1) + i + return j + } // convert a color and build up the palette - this.color = function (red, green, blue, alpha) { + this.color = function(red, green, blue, alpha) { + alpha = alpha >= 0 ? alpha : 255 + var color = (((((alpha << 8) | red) << 8) | green) << 8) | blue - alpha = alpha >= 0 ? alpha : 255; - var color = (((((alpha << 8) | red) << 8) | green) << 8) | blue; + if (typeof this.palette[color] == 'undefined') { + if (this.pindex == this.depth) return '\x00' - if (typeof this.palette[color] == "undefined") { - if (this.pindex == this.depth) return "\x00"; + var ndx = this.plte_offs + 8 + 3 * this.pindex - var ndx = this.plte_offs + 8 + 3 * this.pindex; + this.buffer[ndx + 0] = String.fromCharCode(red) + this.buffer[ndx + 1] = String.fromCharCode(green) + this.buffer[ndx + 2] = String.fromCharCode(blue) + this.buffer[this.trns_offs + 8 + this.pindex] = String.fromCharCode(alpha) - this.buffer[ndx + 0] = String.fromCharCode(red); - this.buffer[ndx + 1] = String.fromCharCode(green); - this.buffer[ndx + 2] = String.fromCharCode(blue); - this.buffer[this.trns_offs + 8 + this.pindex] = String.fromCharCode(alpha); - - this.palette[color] = String.fromCharCode(this.pindex++); + this.palette[color] = String.fromCharCode(this.pindex++) } - return this.palette[color]; - }; + return this.palette[color] + } // output a PNG string, Base64 encoded - this.getBase64 = function () { + this.getBase64 = function() { + var s = this.getDump() - var s = this.getDump(); - - var ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - var c1, c2, c3, e1, e2, e3, e4; - var l = s.length; - var i = 0; - var r = ""; + var ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + var c1, c2, c3, e1, e2, e3, e4 + var l = s.length + var i = 0 + var r = '' do { - c1 = s.charCodeAt(i); - e1 = c1 >> 2; - c2 = s.charCodeAt(i + 1); - e2 = ((c1 & 3) << 4) | (c2 >> 4); - c3 = s.charCodeAt(i + 2); - if (l < i + 2) { e3 = 64; } else { e3 = ((c2 & 0xf) << 2) | (c3 >> 6); } - if (l < i + 3) { e4 = 64; } else { e4 = c3 & 0x3f; } - r += ch.charAt(e1) + ch.charAt(e2) + ch.charAt(e3) + ch.charAt(e4); - } while ((i += 3) < l); - return r; - }; + c1 = s.charCodeAt(i) + e1 = c1 >> 2 + c2 = s.charCodeAt(i + 1) + e2 = ((c1 & 3) << 4) | (c2 >> 4) + c3 = s.charCodeAt(i + 2) + if (l < i + 2) { + e3 = 64 + } else { + e3 = ((c2 & 0xf) << 2) | (c3 >> 6) + } + if (l < i + 3) { + e4 = 64 + } else { + e4 = c3 & 0x3f + } + r += ch.charAt(e1) + ch.charAt(e2) + ch.charAt(e3) + ch.charAt(e4) + } while ((i += 3) < l) + return r + } // output a PNG string - this.getDump = function () { - + this.getDump = function() { // compute adler32 of output pixels + row filter bytes - var BASE = 65521; /* largest prime smaller than 65536 */ - var NMAX = 5552; /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ - var s1 = 1; - var s2 = 0; - var n = NMAX; + var BASE = 65521 /* largest prime smaller than 65536 */ + var NMAX = 5552 /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ + var s1 = 1 + var s2 = 0 + var n = NMAX for (var y = 0; y < this.height; y++) { for (var x = -1; x < this.width; x++) { - s1 += this.buffer[this.index(x, y)].charCodeAt(0); - s2 += s1; + s1 += this.buffer[this.index(x, y)].charCodeAt(0) + s2 += s1 if ((n -= 1) == 0) { - s1 %= BASE; - s2 %= BASE; - n = NMAX; + s1 %= BASE + s2 %= BASE + n = NMAX } } } - s1 %= BASE; - s2 %= BASE; - write(this.buffer, this.idat_offs + this.idat_size - 8, byte4((s2 << 16) | s1)); + s1 %= BASE + s2 %= BASE + write(this.buffer, this.idat_offs + this.idat_size - 8, byte4((s2 << 16) | s1)) // compute crc32 of the PNG chunks function crc32(png, offs, size) { - var crc = -1; + var crc = -1 for (var i = 4; i < size - 4; i += 1) { - crc = _crc32[(crc ^ png[offs + i].charCodeAt(0)) & 0xff] ^ ((crc >> 8) & 0x00ffffff); + crc = _crc32[(crc ^ png[offs + i].charCodeAt(0)) & 0xff] ^ ((crc >> 8) & 0x00ffffff) } - write(png, offs + size - 4, byte4(crc ^ -1)); + write(png, offs + size - 4, byte4(crc ^ -1)) } - crc32(this.buffer, this.ihdr_offs, this.ihdr_size); - crc32(this.buffer, this.plte_offs, this.plte_size); - crc32(this.buffer, this.trns_offs, this.trns_size); - crc32(this.buffer, this.idat_offs, this.idat_size); - crc32(this.buffer, this.iend_offs, this.iend_size); + crc32(this.buffer, this.ihdr_offs, this.ihdr_size) + crc32(this.buffer, this.plte_offs, this.plte_size) + crc32(this.buffer, this.trns_offs, this.trns_size) + crc32(this.buffer, this.idat_offs, this.idat_size) + crc32(this.buffer, this.iend_offs, this.iend_size) // convert PNG to string - return "\x89PNG\r\n\x1A\n" + this.buffer.join(''); - }; + return '\x89PNG\r\n\x1A\n' + this.buffer.join('') + } - this.fillRect = function (x, y, w, h, color) { + this.fillRect = function(x, y, w, h, color) { for (var i = 0; i < w; i++) { for (var j = 0; j < h; j++) { - this.buffer[this.index(x + i, y + j)] = color; + this.buffer[this.index(x + i, y + j)] = color } } - }; - }; + } + } // https://stackoverflow.com/questions/2353211/hsl-to-rgb-color-conversion /** @@ -233,90 +238,90 @@ */ function hue2rgb(p, q, t) { - if (t < 0) t += 1; - if (t > 1) t -= 1; - if (t < 1 / 6) return p + (q - p) * 6 * t; - if (t < 1 / 2) return q; - if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; - return p; + if (t < 0) t += 1 + if (t > 1) t -= 1 + if (t < 1 / 6) return p + (q - p) * 6 * t + if (t < 1 / 2) return q + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6 + return p } function hsl2rgb(h, s, l) { - var r, g, b; + var r, g, b if (s == 0) { - r = g = b = l; // achromatic + r = g = b = l // achromatic } else { - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - r = hue2rgb(p, q, h + 1 / 3); - g = hue2rgb(p, q, h); - b = hue2rgb(p, q, h - 1 / 3); + var q = l < 0.5 ? l * (1 + s) : l + s - l * s + var p = 2 * l - q + r = hue2rgb(p, q, h + 1 / 3) + g = hue2rgb(p, q, h) + b = hue2rgb(p, q, h - 1 / 3) } - return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), 255]; + return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), 255] } // The random number is a js implementation of the Xorshift PRNG - var randseed = new Array(4); // Xorshift: [x, y, z, w] 32 bit values + var randseed = new Array(4) // Xorshift: [x, y, z, w] 32 bit values function seedrand(seed) { for (var i = 0; i < randseed.length; i++) { - randseed[i] = 0; + randseed[i] = 0 } for (var i = 0; i < seed.length; i++) { - randseed[i % 4] = (randseed[i % 4] << 5) - randseed[i % 4] + seed.charCodeAt(i); + randseed[i % 4] = (randseed[i % 4] << 5) - randseed[i % 4] + seed.charCodeAt(i) } } function rand() { // based on Java's String.hashCode(), expanded to 4 32bit values - var t = randseed[0] ^ (randseed[0] << 11); + var t = randseed[0] ^ (randseed[0] << 11) - randseed[0] = randseed[1]; - randseed[1] = randseed[2]; - randseed[2] = randseed[3]; - randseed[3] = randseed[3] ^ (randseed[3] >> 19) ^ t ^ (t >> 8); + randseed[0] = randseed[1] + randseed[1] = randseed[2] + randseed[2] = randseed[3] + randseed[3] = randseed[3] ^ (randseed[3] >> 19) ^ t ^ (t >> 8) - return (randseed[3] >>> 0) / (1 << 31 >>> 0); + return (randseed[3] >>> 0) / ((1 << 31) >>> 0) } function createColor() { //saturation is the whole color spectrum - var h = Math.floor(rand() * 360); + var h = Math.floor(rand() * 360) //saturation goes from 40 to 100, it avoids greyish colors - var s = rand() * 60 + 40; + var s = rand() * 60 + 40 //lightness can be anything from 0 to 100, but probabilities are a bell curve around 50% - var l = (rand() + rand() + rand() + rand()) * 25; + var l = (rand() + rand() + rand() + rand()) * 25 - return [h / 360, s / 100, l / 100]; + return [h / 360, s / 100, l / 100] } function createImageData(size) { - var width = size; // Only support square icons for now - var height = size; + var width = size // Only support square icons for now + var height = size - var dataWidth = Math.ceil(width / 2); - var mirrorWidth = width - dataWidth; + var dataWidth = Math.ceil(width / 2) + var mirrorWidth = width - dataWidth - var data = []; + var data = [] for (var y = 0; y < height; y++) { - var row = []; + var row = [] for (var x = 0; x < dataWidth; x++) { // this makes foreground and background color to have a 43% (1/2.3) probability // spot color has 13% chance - row[x] = Math.floor(rand() * 2.3); + row[x] = Math.floor(rand() * 2.3) } - var r = row.slice(0, mirrorWidth); - r.reverse(); - row = row.concat(r); + var r = row.slice(0, mirrorWidth) + r.reverse() + row = row.concat(r) for (var i = 0; i < row.length; i++) { - data.push(row[i]); + data.push(row[i]) } } - return data; + return data } function buildOpts(opts) { @@ -324,43 +329,45 @@ throw 'No seed provided' } - seedrand(opts.seed); + seedrand(opts.seed) - return Object.assign({ - size: 8, - scale: 16, - color: createColor(), - bgcolor: createColor(), - spotcolor: createColor(), - }, opts) + return Object.assign( + { + size: 8, + scale: 16, + color: createColor(), + bgcolor: createColor(), + spotcolor: createColor(), + }, + opts, + ) } function toDataUrl(address) { - const opts = buildOpts({ seed: address.toLowerCase() }); + const opts = buildOpts({ seed: address.toLowerCase() }) - const imageData = createImageData(opts.size); - const width = Math.sqrt(imageData.length); + const imageData = createImageData(opts.size) + const width = Math.sqrt(imageData.length) - const p = new PNG(opts.size * opts.scale, opts.size * opts.scale, 3); - const bgcolor = p.color(...hsl2rgb(...opts.bgcolor)); - const color = p.color(...hsl2rgb(...opts.color)); - const spotcolor = p.color(...hsl2rgb(...opts.spotcolor)); + const p = new PNG(opts.size * opts.scale, opts.size * opts.scale, 3) + const bgcolor = p.color(...hsl2rgb(...opts.bgcolor)) + const color = p.color(...hsl2rgb(...opts.color)) + const spotcolor = p.color(...hsl2rgb(...opts.spotcolor)) for (var i = 0; i < imageData.length; i++) { - var row = Math.floor(i / width); - var col = i % width; + var row = Math.floor(i / width) + var col = i % width // if data is 0, leave the background if (imageData[i]) { // if data is 2, choose spot color, if 1 choose foreground - const pngColor = imageData[i] == 1 ? color : spotcolor; - p.fillRect(col * opts.scale, row * opts.scale, opts.scale, opts.scale, pngColor); + const pngColor = imageData[i] == 1 ? color : spotcolor + p.fillRect(col * opts.scale, row * opts.scale, opts.scale, opts.scale, pngColor) } } - return `data:image/png;base64,${p.getBase64()}`; + return `data:image/png;base64,${p.getBase64()}` } - exports.toDataUrl = toDataUrl; + exports.toDataUrl = toDataUrl - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); + Object.defineProperty(exports, '__esModule', { value: true }) +}) diff --git a/src/components/Identicon/index.jsx b/src/components/Identicon/index.jsx index a6b3fecd..5fa3935d 100644 --- a/src/components/Identicon/index.jsx +++ b/src/components/Identicon/index.jsx @@ -5,11 +5,18 @@ import { toDataUrl } from './blockies' type Props = { address: string, diameter: number, + className?: string, } type IdenticonRef = { current: null | HTMLDivElement } export default class Identicon extends React.PureComponent { + static defaultProps = { + className: '', + } + + identicon: IdenticonRef + constructor(props: Props) { super(props) @@ -55,13 +62,13 @@ export default class Identicon extends React.PureComponent { return image } - identicon: IdenticonRef render() { - const style = this.getStyleFrom(this.props.diameter) + const { diameter, className } = this.props + const style = this.getStyleFrom(diameter) return ( -
+
) } } diff --git a/src/components/Loader/indes.stories.js b/src/components/Loader/indes.stories.js index e7b8f9f1..f6576f3b 100644 --- a/src/components/Loader/indes.stories.js +++ b/src/components/Loader/indes.stories.js @@ -4,11 +4,7 @@ import * as React from 'react' import styles from '~/components/layout/PageFrame/index.scss' import Component from './index' -const FrameDecorator = story => ( -
- { story() } -
-) +const FrameDecorator = story =>
{story()}
storiesOf('Components', module) .addDecorator(FrameDecorator) diff --git a/src/components/Modal/index.jsx b/src/components/Modal/index.jsx index 6e82e33e..c0b237dd 100644 --- a/src/components/Modal/index.jsx +++ b/src/components/Modal/index.jsx @@ -1,5 +1,6 @@ // @flow import * as React from 'react' +import cn from 'classnames' import Modal from '@material-ui/core/Modal' import { withStyles } from '@material-ui/core/styles' @@ -8,8 +9,10 @@ type Props = { description: string, open: boolean, handleClose: Function, - children: React$Node, + children: React.Node, classes: Object, + modalClassName: ?string, + paperClassName: ?string, } const styles = () => ({ @@ -35,18 +38,16 @@ const styles = () => ({ }) const GnoModal = ({ - title, description, open, children, handleClose, classes, + title, description, open, children, handleClose, modalClassName, classes, paperClassName, }: Props) => ( -
- { children } -
+
{children}
) diff --git a/src/components/Refresh/index.jsx b/src/components/Refresh/index.jsx deleted file mode 100644 index 8ec4bd55..00000000 --- a/src/components/Refresh/index.jsx +++ /dev/null @@ -1,47 +0,0 @@ -// @flow -import * as React from 'react' -import CircularProgress from '@material-ui/core/CircularProgress' -import RefreshIcon from '@material-ui/icons/Refresh' -import { sm, secondary } from '~/theme/variables' - -type Props = { - callback: () => void, -} - -type State = { - loading: boolean, -} - -const loaderStyle = { - margin: `0px 0px 0px ${sm}`, - color: secondary, -} - -class Loader extends React.Component { - constructor() { - super() - - this.state = { - loading: false, - } - } - - onReload = async () => { - this.setState({ loading: true }, await this.props.callback()) - this.setState({ loading: false }) - } - - render() { - const { loading } = this.state - - return ( -
- {loading - ? - : } -
- ) - } -} - -export default Loader diff --git a/src/components/Root/index.js b/src/components/Root/index.js new file mode 100644 index 00000000..8cfba635 --- /dev/null +++ b/src/components/Root/index.js @@ -0,0 +1,31 @@ +// @flow +import 'babel-polyfill' + +import { MuiThemeProvider } from '@material-ui/core/styles' +import React, { Suspense } from 'react' +import { Provider } from 'react-redux' +import { ConnectedRouter } from 'connected-react-router' +import { hot } from 'react-hot-loader/root' +import PageFrame from '../layout/PageFrame' +import Loader from '../Loader' +import { history, store } from '~/store' +import theme from '~/theme/mui' +import AppRoutes from '~/routes' + +import './index.scss' + +const Root = () => ( + + + + + }> + + + + + + +) + +export default hot(Root) diff --git a/src/index.scss b/src/components/Root/index.scss similarity index 100% rename from src/index.scss rename to src/components/Root/index.scss diff --git a/src/components/SharedSnackBar/Context.jsx b/src/components/SharedSnackBar/Context.jsx deleted file mode 100644 index 49ee43d4..00000000 --- a/src/components/SharedSnackBar/Context.jsx +++ /dev/null @@ -1,67 +0,0 @@ -// @flow -import * as React from 'react' -import SharedSnackBar from './index' - -const SharedSnackbarContext = React.createContext({ - openSnackbar: undefined, - closeSnackbar: undefined, - snackbarIsOpen: false, - message: '', - variant: 'info', -}) - -type Props = { - children: React$Node, -} - -export type Variant = 'success' | 'error' | 'warning' | 'info' - -type State = { - isOpen: boolean, - message: string, - variant: Variant, -} - -export class SharedSnackbarProvider extends React.Component { - state = { - isOpen: false, - message: '', - variant: 'info', - } - - openSnackbar = (message: string, variant: Variant) => { - this.setState({ - message, - variant, - isOpen: true, - }) - } - - closeSnackbar = () => { - this.setState({ - message: '', - isOpen: false, - }) - } - - render() { - const { children } = this.props - - return ( - - - {children} - - ) - } -} - -export const SharedSnackbarConsumer = SharedSnackbarContext.Consumer diff --git a/src/components/SharedSnackBar/index.jsx b/src/components/SharedSnackBar/index.jsx index 304021c0..c208afdb 100644 --- a/src/components/SharedSnackBar/index.jsx +++ b/src/components/SharedSnackBar/index.jsx @@ -2,9 +2,8 @@ import * as React from 'react' import { Snackbar } from '@material-ui/core' import SnackbarContent from '~/components/SnackbarContent' -import { SharedSnackbarConsumer } from './Context' -const SharedSnackbar = () => ( +export const SharedSnackbar = () => ( {(value) => { const { @@ -32,4 +31,75 @@ const SharedSnackbar = () => ( ) -export default SharedSnackbar +type SnackbarContext = { + openSnackbar: Function, + closeSnackbar: Function, + snackbarIsOpen: boolean, + message: string, + variant: string, +} + +const SharedSnackbarContext = React.createContext({ + openSnackbar: undefined, + closeSnackbar: undefined, + snackbarIsOpen: false, + message: '', + variant: 'info', +}) + +type Props = { + children: React.Node, +} + +export type Variant = 'success' | 'error' | 'warning' | 'info' + +type State = { + isOpen: boolean, + message: string, + variant: Variant, +} + +export class SharedSnackbarProvider extends React.Component { + state = { + isOpen: false, + message: '', + variant: 'info', + } + + openSnackbar = (message: string, variant: Variant) => { + this.setState({ + message, + variant, + isOpen: true, + }) + } + + closeSnackbar = () => { + this.setState({ + message: '', + isOpen: false, + }) + } + + render() { + const { children } = this.props + const { message, variant, isOpen } = this.state + + return ( + + + {children} + + ) + } +} + +export const SharedSnackbarConsumer = SharedSnackbarContext.Consumer diff --git a/src/components/SnackbarContent/index.jsx b/src/components/SnackbarContent/index.jsx index 603e3f53..0cfe8012 100644 --- a/src/components/SnackbarContent/index.jsx +++ b/src/components/SnackbarContent/index.jsx @@ -64,7 +64,7 @@ const styles = theme => ({ }, iconVariant: { opacity: 0.9, - marginRight: theme.spacing.unit, + marginRight: theme.spacing(1), }, message: { display: 'flex', diff --git a/src/components/Stepper/Controls/index.jsx b/src/components/Stepper/Controls/index.jsx index 58f6c3ec..b8423f8e 100644 --- a/src/components/Stepper/Controls/index.jsx +++ b/src/components/Stepper/Controls/index.jsx @@ -48,7 +48,7 @@ const Controls = ({ ) + constructor(props: Props) { super(props) @@ -60,38 +62,45 @@ class GnoStepper extends React.PureComponent { } onReset = () => { - const resetCallback = this.props.onReset - if (resetCallback) { - resetCallback() + const { onReset, initialValues } = this.props + if (onReset) { + onReset() } + this.setState(() => ({ page: 0, - values: this.props.initialValues || {}, + values: initialValues || {}, })) } - getPageProps = (pages: React$Node): PageProps => React.Children.toArray(pages)[this.state.page].props + getPageProps = (pages: React.Node): PageProps => { + const { page } = this.state - getActivePageFrom = (pages: React$Node) => { + return React.Children.toArray(pages)[page].props + } + + getActivePageFrom = (pages: React.Node) => { const activePageProps = this.getPageProps(pages) const { children, ...props } = activePageProps return children({ ...props, updateInitialProps: this.updateInitialProps }) } - updateInitialProps = (initialValues) => { - this.setState({ values: initialValues }) + updateInitialProps = (values) => { + this.setState({ values }) } validate = (values: Object) => { - const activePage = React.Children.toArray(this.props.children)[ - this.state.page - ] + const { children } = this.props + const { page } = this.state + + const activePage = React.Children.toArray(children)[page] return activePage.props.validate ? activePage.props.validate(values) : {} } next = async (values: Object) => { - const activePageProps = this.getPageProps(this.props.children) + const { children } = this.props + const activePageProps = this.getPageProps(children) const { prepareNextInitialProps } = activePageProps let pageInitialProps @@ -101,14 +110,15 @@ class GnoStepper extends React.PureComponent { const finalValues = { ...values, ...pageInitialProps } this.setState(state => ({ - page: Math.min(state.page + 1, React.Children.count(this.props.children) - 1), + page: Math.min(state.page + 1, React.Children.count(children) - 1), values: finalValues, })) } previous = () => { - const firstPage = this.state.page === 0 + const { page } = this.state + const firstPage = page === 0 if (firstPage) { return history.goBack() } @@ -129,11 +139,14 @@ class GnoStepper extends React.PureComponent { return this.next(values) } - isLastPage = page => page === this.props.steps.length - 1 + isLastPage = (page) => { + const { steps } = this.props + return page === steps.length - 1 + } render() { const { - steps, children, classes, disabledWhenValidating = false, + steps, children, classes, disabledWhenValidating = false, testId, } = this.props const { page, values } = this.state const activePage = this.getActivePageFrom(children) @@ -142,11 +155,7 @@ class GnoStepper extends React.PureComponent { return ( - + {(submitting: boolean, validating: boolean, ...rest: any) => { const disabled = disabledWhenValidating ? submitting || validating : submitting const controls = ( @@ -167,9 +176,7 @@ class GnoStepper extends React.PureComponent { {steps.map(label => ( {label} - - {activePage(controls, ...rest)} - + {activePage(controls, ...rest)} ))} diff --git a/src/components/Table/TableHead.jsx b/src/components/Table/TableHead.jsx index e965c7eb..07e38c78 100644 --- a/src/components/Table/TableHead.jsx +++ b/src/components/Table/TableHead.jsx @@ -9,12 +9,13 @@ import { type Order } from '~/components/Table/sorting' export type Column = { id: string, - numeric: boolean, + align?: string, order: boolean, // If data for sorting will be provided in a different attr disablePadding: boolean, label: string, custom: boolean, // If content will be rendered by user manually width?: number, + static?: boolean, // If content can't be sorted by values in the column } export const cellWidth = (width: number | typeof undefined) => { @@ -36,7 +37,9 @@ type Props = { class GnoTableHead extends React.PureComponent { changeSort = (property: string, orderAttr: boolean) => () => { - this.props.onSort(property, orderAttr) + const { onSort } = this.props + + onSort(property, orderAttr) } render() { @@ -48,17 +51,21 @@ class GnoTableHead extends React.PureComponent { {columns.map((column: Column) => ( - - {column.label} - + {column.static ? ( + column.label + ) : ( + + {column.label} + + )} ))} diff --git a/src/components/Table/index.jsx b/src/components/Table/index.jsx index bd75c82f..487c2ede 100644 --- a/src/components/Table/index.jsx +++ b/src/components/Table/index.jsx @@ -2,14 +2,12 @@ import * as React from 'react' import classNames from 'classnames' import { List } from 'immutable' -import Row from '~/components/layout/Row' import Table from '@material-ui/core/Table' import TableBody from '@material-ui/core/TableBody' -import TableRow from '@material-ui/core/TableRow' -import TableCell from '@material-ui/core/TableCell' import { withStyles } from '@material-ui/core/styles' import CircularProgress from '@material-ui/core/CircularProgress' import TablePagination from '@material-ui/core/TablePagination' +import Row from '~/components/layout/Row' import { type Order, stableSort, getSorting } from '~/components/Table/sorting' import TableHead, { type Column } from '~/components/Table/TableHead' import { xl } from '~/theme/variables' @@ -23,15 +21,17 @@ type Props = { children: Function, size: number, defaultFixed?: boolean, + defaultOrder?: 'desc' | 'asc', + noBorder: boolean, } type State = { page: number, order: Order, - orderBy: string, + orderBy?: string, orderProp: boolean, rowsPerPage: number, - fixed: boolean, + fixed?: boolean, } const styles = { @@ -60,26 +60,56 @@ const styles = { const FIXED_HEIGHT = 49 +const backProps = { + 'aria-label': 'Previous Page', +} + +const nextProps = { + 'aria-label': 'Next Page', +} + class GnoTable extends React.Component, State> { state = { page: 0, - order: 'asc', - orderBy: this.props.defaultOrderBy, - fixed: !!this.props.defaultFixed, + order: undefined, + orderBy: undefined, + fixed: undefined, orderProp: false, rowsPerPage: 5, } - onSort = (property: string, orderProp: boolean) => { - const orderBy = property - let order = 'desc' + componentDidMount() { + const { defaultOrderBy, columns } = this.props - if (this.state.orderBy === property && this.state.order === 'desc') { - order = 'asc' + if (defaultOrderBy && columns) { + const defaultOrderCol = columns.find(({ id }) => id === defaultOrderBy) + + if (defaultOrderCol.order) { + this.setState({ + orderProp: true, + }) + } + } + } + + onSort = (newOrderBy: string, orderProp: boolean) => { + const { order, orderBy } = this.state + const { defaultOrder } = this.props + let newOrder = 'desc' + + // if table was previously sorted by the user + if (order && orderBy === newOrderBy && order === 'desc') { + newOrder = 'asc' + } else if (!order && defaultOrder === 'desc') { + // if it was not sorted and defaultOrder is used + newOrder = 'asc' } this.setState(() => ({ - order, orderBy, orderProp, fixed: false, + order: newOrder, + orderBy: newOrderBy, + orderProp, + fixed: false, })) } @@ -91,69 +121,57 @@ class GnoTable extends React.Component, State> { this.setState({ page }) } - handleChangeRowsPerPage = (event: SyntheticInputEvent) => { - const rowsPerPage = Number(event.target.value) + handleChangeRowsPerPage = (e: SyntheticInputEvent) => { + const rowsPerPage = Number(e.target.value) this.setState({ rowsPerPage }) } render() { const { - data, label, columns, classes, children, size, + data, label, columns, classes, children, size, defaultOrderBy, defaultOrder, defaultFixed, noBorder, } = this.props - const { order, orderBy, page, orderProp, rowsPerPage, fixed, } = this.state - - const backProps = { - 'aria-label': 'Previous Page', - } - - const nextProps = { - 'aria-label': 'Next Page', - } + const orderByParam = orderBy || defaultOrderBy + const orderParam = order || defaultOrder + const fixedParam = typeof fixed !== 'undefined' ? fixed : !!defaultFixed const paginationClasses = { selectRoot: classes.selectRoot, - root: classes.paginationRoot, + root: !noBorder && classes.paginationRoot, input: classes.white, } - const sortedData = stableSort(data, getSorting(order, orderBy, orderProp), fixed) - .slice(page * rowsPerPage, ((page * rowsPerPage) + rowsPerPage)) + const sortedData = stableSort(data, getSorting(orderParam, orderByParam, orderProp), fixedParam).slice( + page * rowsPerPage, + page * rowsPerPage + rowsPerPage, + ) - const emptyRows = rowsPerPage - Math.min(rowsPerPage, data.length - (page * rowsPerPage)) + const emptyRows = rowsPerPage - Math.min(rowsPerPage, data.length - page * rowsPerPage) const isEmpty = size === 0 return ( - { !isEmpty && - - - - { children(sortedData) } - { emptyRows > 0 && - - - - } - + {!isEmpty && ( +
+ + {children(sortedData)}
- } - { isEmpty && - + )} + {isEmpty && ( + - } + )} extends React.Component, State> { } } +GnoTable.defaultProps = { + defaultOrder: 'asc', +} + export default withStyles(styles)(GnoTable) diff --git a/src/components/Table/sorting.js b/src/components/Table/sorting.js index e41f8f13..aad73260 100644 --- a/src/components/Table/sorting.js +++ b/src/components/Table/sorting.js @@ -1,4 +1,5 @@ // @flow +import { List } from 'immutable' export const FIXED = 'fixed' type Fixed = { @@ -9,7 +10,6 @@ export type SortRow = T & Fixed export const buildOrderFieldFrom = (attr: string) => `${attr}Order` - const desc = (a: Object, b: Object, orderBy: string, orderProp: boolean) => { const order = orderProp ? buildOrderFieldFrom(orderBy) : orderBy @@ -24,13 +24,14 @@ const desc = (a: Object, b: Object, orderBy: string, orderProp: boolean) => { } // eslint-disable-next-line -export const stableSort = (array: Array, cmp: any, fixed: boolean): Array => { - const fixedElems: Array = fixed ? array.filter((elem: any) => elem.fixed) : [] - const data: Array = fixed ? array.filter((elem: any) => !elem[FIXED]) : array - const stabilizedThis = data.map((el, index) => [el, index]) +export const stableSort = (dataArray: List, cmp: any, fixed: boolean): List => { + const fixedElems: List = fixed ? dataArray.filter((elem: any) => elem.fixed) : List([]) + const data: List = fixed ? dataArray.filter((elem: any) => !elem[FIXED]) : dataArray + let stabilizedThis = data.map((el, index) => [el, index]) - stabilizedThis.sort((a, b) => { + stabilizedThis = stabilizedThis.sort((a, b) => { const order = cmp(a[0], b[0]) + if (order !== 0) { return order } @@ -38,12 +39,13 @@ export const stableSort = (array: Array, cmp: any, fixed: bool return a[1] - b[1] }) - const sortedElems: Array = stabilizedThis.map(el => el[0]) + const sortedElems: List = stabilizedThis.map(el => el[0]) return fixedElems.concat(sortedElems) } export type Order = 'asc' | 'desc' -export const getSorting = (order: Order, orderBy: string, orderProp: boolean) => - (order === 'desc' ? (a: any, b: any) => desc(a, b, orderBy, orderProp) : (a: any, b: any) => -desc(a, b, orderBy, orderProp)) +export const getSorting = (order: Order, orderBy: string, orderProp: boolean) => (order === 'desc' + ? (a: any, b: any) => desc(a, b, orderBy, orderProp) + : (a: any, b: any) => -desc(a, b, orderBy, orderProp)) diff --git a/src/components/forms/GnoForm/index.jsx b/src/components/forms/GnoForm/index.jsx index 64afb53e..d3d690db 100644 --- a/src/components/forms/GnoForm/index.jsx +++ b/src/components/forms/GnoForm/index.jsx @@ -15,6 +15,8 @@ type Props = { padding?: number, validation?: (values: Object) => Object | Promise, initialValues?: Object, + formMutators?: Object, + testId?: string, } const stylesBasedOn = (padding: number): $Shape => ({ @@ -24,15 +26,16 @@ const stylesBasedOn = (padding: number): $Shape => ({ }) const GnoForm = ({ - onSubmit, validation, initialValues, children, padding = 0, + onSubmit, validation, initialValues, children, padding = 0, formMutators, testId = '', }: Props) => (
( - - {children(rest.submitting, rest.validating, rest)} + + {children(rest.submitting, rest.validating, rest, rest.form.mutators)}
)} /> diff --git a/src/components/forms/SelectField/index.jsx b/src/components/forms/SelectField/index.jsx index 451e95d6..cce9b6b3 100644 --- a/src/components/forms/SelectField/index.jsx +++ b/src/components/forms/SelectField/index.jsx @@ -16,32 +16,31 @@ const SelectInput = ({ meta, label, formControlProps, + classes, + renderValue, + disableError, ...rest }: SelectFieldProps) => { - const showError = ((meta.submitError && !meta.dirtySinceLastSubmit) || meta.error) && meta.touched - const inputProps = { ...restInput, name } + const showError = ((meta.submitError && !meta.dirtySinceLastSubmit) || meta.error) && meta.touched && !disableError + const inputProps = { + ...restInput, + name, + } return ( - + {label}